@@ -83,6 +83,16 @@ function getBuildLoggingArgs(logLevel: string): string[] {
8383
8484describe ( "xcodebuildArgsService" , ( ) => {
8585 describe ( "getXcodeProjectArgs" , ( ) => {
86+ const originalAuthProvider = process . env . NS_PACKAGE_AUTHORIZATION_PROVIDER ;
87+
88+ afterEach ( ( ) => {
89+ if ( originalAuthProvider === undefined ) {
90+ delete process . env . NS_PACKAGE_AUTHORIZATION_PROVIDER ;
91+ } else {
92+ process . env . NS_PACKAGE_AUTHORIZATION_PROVIDER = originalAuthProvider ;
93+ }
94+ } ) ;
95+
8696 it ( "should allow SWIFT_ENABLE_EXPLICIT_MODULES to be overridden from build.xcconfig" , ( ) => {
8797 const injector = createTestInjector ( {
8898 logLevel : "INFO" ,
@@ -119,6 +129,66 @@ describe("xcodebuildArgsService", () => {
119129
120130 assert . include ( actualArgs , "DEVELOPMENT_TEAM=TEAM123" ) ;
121131 } ) ;
132+
133+ it ( "passes the package authorization provider from the environment" , ( ) => {
134+ process . env . NS_PACKAGE_AUTHORIZATION_PROVIDER = "netrc" ;
135+ const injector = createTestInjector ( {
136+ logLevel : "INFO" ,
137+ hasProjectWorkspace : false ,
138+ } ) ;
139+ const xcodebuildArgsService : IXcodebuildArgsService = injector . resolve (
140+ "xcodebuildArgsService" ,
141+ ) ;
142+
143+ const actualArgs = xcodebuildArgsService . getXcodeProjectArgs (
144+ < any > { projectRoot, normalizedPlatformName } ,
145+ < any > { projectName, appResourcesDirectoryPath } ,
146+ ) ;
147+
148+ const index = actualArgs . indexOf ( "-packageAuthorizationProvider" ) ;
149+ assert . notStrictEqual ( index , - 1 ) ;
150+ assert . strictEqual ( actualArgs [ index + 1 ] , "netrc" ) ;
151+ } ) ;
152+
153+ it ( "omits the package authorization provider when unset" , ( ) => {
154+ delete process . env . NS_PACKAGE_AUTHORIZATION_PROVIDER ;
155+ const injector = createTestInjector ( {
156+ logLevel : "INFO" ,
157+ hasProjectWorkspace : false ,
158+ } ) ;
159+ const xcodebuildArgsService : IXcodebuildArgsService = injector . resolve (
160+ "xcodebuildArgsService" ,
161+ ) ;
162+
163+ const actualArgs = xcodebuildArgsService . getXcodeProjectArgs (
164+ < any > { projectRoot, normalizedPlatformName } ,
165+ < any > { projectName, appResourcesDirectoryPath } ,
166+ ) ;
167+
168+ assert . notInclude ( actualArgs , "-packageAuthorizationProvider" ) ;
169+ } ) ;
170+
171+ it ( "keeps the project path as the second argument" , ( ) => {
172+ process . env . NS_PACKAGE_AUTHORIZATION_PROVIDER = "keychain" ;
173+ const injector = createTestInjector ( {
174+ logLevel : "INFO" ,
175+ hasProjectWorkspace : false ,
176+ } ) ;
177+ const xcodebuildArgsService : IXcodebuildArgsService = injector . resolve (
178+ "xcodebuildArgsService" ,
179+ ) ;
180+
181+ const actualArgs = xcodebuildArgsService . getXcodeProjectArgs (
182+ < any > { projectRoot, normalizedPlatformName } ,
183+ < any > { projectName, appResourcesDirectoryPath } ,
184+ ) ;
185+
186+ assert . strictEqual ( actualArgs [ 0 ] , "-project" ) ;
187+ assert . strictEqual (
188+ actualArgs [ 1 ] ,
189+ path . join ( projectRoot , `${ projectName } .xcodeproj` ) ,
190+ ) ;
191+ } ) ;
122192 } ) ;
123193
124194 describe ( "getBuildForSimulatorArgs" , ( ) => {
0 commit comments