@@ -141,6 +141,8 @@ describe('UniversalPackages Suite', function () {
141141 ...getDefaultEnvVars ( ) ,
142142 'INPUT_COMMAND' : 'publish' ,
143143 'INPUT_FEED' : TEST_CONSTANTS . FEED_NAME ,
144+ 'INPUT_ORGANIZATION' : TEST_CONSTANTS . ORGANIZATION_NAME ,
145+ 'INPUT_ADOSERVICECONNECTION' : TEST_CONSTANTS . SERVICE_CONNECTION_NAME ,
144146 'PROVENANCE_PROVIDES_SESSION_ID' : 'true' ,
145147 'EXPECTED_COMMAND_STRING' : expectedCommandString
146148 } ) ;
@@ -177,6 +179,8 @@ describe('UniversalPackages Suite', function () {
177179 ...getDefaultEnvVars ( ) ,
178180 'INPUT_COMMAND' : 'publish' ,
179181 'INPUT_FEED' : TEST_CONSTANTS . PROJECT_SCOPED_FEED_NAME ,
182+ 'INPUT_ORGANIZATION' : TEST_CONSTANTS . ORGANIZATION_NAME ,
183+ 'INPUT_ADOSERVICECONNECTION' : TEST_CONSTANTS . SERVICE_CONNECTION_NAME ,
180184 'PROVENANCE_PROVIDES_SESSION_ID' : 'true' ,
181185 'EXPECTED_COMMAND_STRING' : expectedCommandString
182186 } ) ;
@@ -198,6 +202,7 @@ describe('UniversalPackages Suite', function () {
198202 let tr = await runTestWithEnv ( './testRunner.js' , {
199203 ...getDefaultEnvVars ( ) ,
200204 'INPUT_COMMAND' : 'download' , // download and publish use the same path for auth
205+ 'INPUT_ORGANIZATION' : TEST_CONSTANTS . ORGANIZATION_NAME ,
201206 'INPUT_ADOSERVICECONNECTION' : TEST_CONSTANTS . SERVICE_CONNECTION_NAME ,
202207 'WIF_AUTH_BEHAVIOR' : 'success' ,
203208 'EXPECTED_COMMAND_STRING' : expectedCommandString
@@ -216,6 +221,7 @@ describe('UniversalPackages Suite', function () {
216221 let tr = await runTestWithEnv ( './testRunner.js' , {
217222 ...getDefaultEnvVars ( ) ,
218223 'INPUT_COMMAND' : 'download' ,
224+ 'INPUT_ORGANIZATION' : TEST_CONSTANTS . ORGANIZATION_NAME ,
219225 'INPUT_ADOSERVICECONNECTION' : TEST_CONSTANTS . SERVICE_CONNECTION_NAME ,
220226 'WIF_AUTH_BEHAVIOR' : 'throws' ,
221227 'SYSTEM_TOKEN_AVAILABLE' : 'true' ,
@@ -235,6 +241,7 @@ describe('UniversalPackages Suite', function () {
235241 let tr = await runTestWithEnv ( './testRunner.js' , {
236242 ...getDefaultEnvVars ( ) ,
237243 'INPUT_COMMAND' : 'download' ,
244+ 'INPUT_ORGANIZATION' : TEST_CONSTANTS . ORGANIZATION_NAME ,
238245 'INPUT_ADOSERVICECONNECTION' : TEST_CONSTANTS . SERVICE_CONNECTION_NAME ,
239246 'WIF_AUTH_BEHAVIOR' : 'returns-null' ,
240247 'SYSTEM_TOKEN_AVAILABLE' : 'true' ,
@@ -248,6 +255,46 @@ describe('UniversalPackages Suite', function () {
248255 expectedMessage : TEST_CONSTANTS . SUCCESS_OUTPUT
249256 } ) ;
250257 } ) ;
258+
259+ it ( 'uses pipeline identity when no service connection is specified' , async function ( ) {
260+ const expectedCommandString = buildCommandString ( { command : 'download' , feed : TEST_CONSTANTS . FEED_NAME } ) ;
261+ let tr = await runTestWithEnv ( './testRunner.js' , {
262+ ...getDefaultEnvVars ( ) ,
263+ 'INPUT_COMMAND' : 'download' ,
264+ 'EXPECTED_COMMAND_STRING' : expectedCommandString
265+ } ) ;
266+ assertArtifactToolCommand ( {
267+ tr,
268+ command : 'download' ,
269+ shouldSucceed : true ,
270+ expectedCommandString,
271+ expectedMessage : TEST_CONSTANTS . SUCCESS_OUTPUT
272+ } ) ;
273+ } ) ;
274+
275+ it ( 'uses cross-org service URL when organization is specified with service connection' , async function ( ) {
276+ const crossOrgCommandString = buildCommandString ( {
277+ command : 'download' ,
278+ feed : TEST_CONSTANTS . FEED_NAME ,
279+ serviceUrl : TEST_CONSTANTS . CROSS_ORG_SERVICE_URL
280+ } ) ;
281+ let tr = await runTestWithEnv ( './testRunner.js' , {
282+ ...getDefaultEnvVars ( ) ,
283+ 'INPUT_COMMAND' : 'download' ,
284+ 'INPUT_ORGANIZATION' : 'other-org' ,
285+ 'INPUT_ADOSERVICECONNECTION' : TEST_CONSTANTS . SERVICE_CONNECTION_NAME ,
286+ 'WIF_AUTH_BEHAVIOR' : 'success' ,
287+ 'MOCK_SERVICE_URL' : TEST_CONSTANTS . CROSS_ORG_SERVICE_URL ,
288+ 'EXPECTED_COMMAND_STRING' : crossOrgCommandString
289+ } ) ;
290+ assertArtifactToolCommand ( {
291+ tr,
292+ command : 'download' ,
293+ shouldSucceed : true ,
294+ expectedCommandString : crossOrgCommandString ,
295+ expectedMessage : TEST_CONSTANTS . SUCCESS_OUTPUT
296+ } ) ;
297+ } ) ;
251298 } ) ;
252299
253300 describe ( 'Error Handling' , function ( ) {
@@ -258,6 +305,7 @@ describe('UniversalPackages Suite', function () {
258305 let tr = await runTestWithEnv ( './testRunner.js' , {
259306 ...getDefaultEnvVars ( ) ,
260307 'INPUT_COMMAND' : 'download' ,
308+ 'INPUT_ORGANIZATION' : TEST_CONSTANTS . ORGANIZATION_NAME ,
261309 'INPUT_ADOSERVICECONNECTION' : TEST_CONSTANTS . SERVICE_CONNECTION_NAME ,
262310 'WIF_AUTH_BEHAVIOR' : 'returns-null' ,
263311 'SYSTEM_TOKEN_AVAILABLE' : 'false' ,
@@ -272,6 +320,7 @@ describe('UniversalPackages Suite', function () {
272320 let tr = await runTestWithEnv ( './testRunner.js' , {
273321 ...getDefaultEnvVars ( ) ,
274322 'INPUT_COMMAND' : 'publish' ,
323+ 'INPUT_ORGANIZATION' : TEST_CONSTANTS . ORGANIZATION_NAME ,
275324 'INPUT_ADOSERVICECONNECTION' : TEST_CONSTANTS . SERVICE_CONNECTION_NAME ,
276325 'WIF_AUTH_BEHAVIOR' : 'returns-null' ,
277326 'SYSTEM_TOKEN_AVAILABLE' : 'false' ,
@@ -281,6 +330,19 @@ describe('UniversalPackages Suite', function () {
281330 assertTaskFailedBeforeToolExecution ( tr , tl . loc ( 'Error_AuthenticationFailed' ) ) ;
282331 } ) ;
283332
333+ it ( 'fails when organization is not specified with service connection' , async function ( ) {
334+ const expectedCommandString = buildCommandString ( { command : 'download' , feed : TEST_CONSTANTS . FEED_NAME } ) ;
335+ let tr = await runTestWithEnv ( './testRunner.js' , {
336+ ...getDefaultEnvVars ( ) ,
337+ 'INPUT_COMMAND' : 'download' ,
338+ 'INPUT_ADOSERVICECONNECTION' : TEST_CONSTANTS . SERVICE_CONNECTION_NAME ,
339+ 'WIF_AUTH_BEHAVIOR' : 'success' ,
340+ 'EXPECTED_COMMAND_STRING' : expectedCommandString
341+ } ) ;
342+
343+ assertTaskFailedBeforeToolExecution ( tr , tl . loc ( 'Error_OrganizationRequired' ) ) ;
344+ } ) ;
345+
284346 it ( 'fails when running against on-premises server' , async function ( ) {
285347 let tr = await runTestWithEnv ( './testRunner.js' , {
286348 ...getDefaultEnvVars ( ) ,
0 commit comments