@@ -66,31 +66,12 @@ import { createTestRegionProvider } from '../regions/testUtil'
6666import { ToolkitPromptSettings } from '../../../shared/settings'
6767import { DefaultEcrClient } from '../../../shared/clients/ecrClient'
6868import assert from 'assert'
69+ import { BucketSource } from '../../../shared/ui/sam/bucketPrompter'
6970
7071describe ( 'SAM SyncWizard' , async function ( ) {
7172 const createTester = async ( params ?: Partial < SyncParams > ) =>
7273 createWizardTester ( new SyncWizard ( { deployType : 'code' , ...params } , await globals . templateRegistry ) )
7374
74- it ( 'shows steps in correct order' , async function ( ) {
75- const tester = await createTester ( )
76- tester . template . assertShowFirst ( )
77- tester . paramsSource . assertShowSecond ( )
78- tester . projectRoot . assertDoesNotShow ( )
79-
80- const workspaceUri = vscode . workspace . workspaceFolders ?. [ 0 ] ?. uri || vscode . Uri . file ( '/' )
81- const rootFolderUri = vscode . Uri . joinPath ( workspaceUri , 'my' )
82- const templateUri = vscode . Uri . joinPath ( rootFolderUri , 'template.yaml' )
83- const tester2 = await createTester ( {
84- template : { uri : templateUri , data : createBaseTemplate ( ) } ,
85- paramsSource : ParamsSource . SpecifyAndSave ,
86- projectRoot : rootFolderUri ,
87- } )
88- tester2 . region . assertShow ( 1 )
89- tester2 . stackName . assertShow ( 2 )
90- tester2 . bucketName . assertShow ( 3 )
91- tester2 . projectRoot . assertDoesNotShow ( )
92- } )
93-
9475 it ( 'skips prompts if user chooses samconfig file as params source' , async function ( ) {
9576 const workspaceUri = vscode . workspace . workspaceFolders ?. [ 0 ] ?. uri || vscode . Uri . file ( '/' )
9677 const rootFolderUri = vscode . Uri . joinPath ( workspaceUri , 'my' )
@@ -190,7 +171,8 @@ describe('SAM SyncWizard', async () => {
190171 * - paramsSource : [Select] 1. ('Specify required parameters and save as defaults')
191172 * - region : [Select] 'us-west-2'
192173 * - stackName : [Select] 1. 'stack1'
193- * - bucketName : [Select] 1. 'stack-1-bucket'
174+ * - bucketSource : [Select] 1. BucketSource.SamCliManaged
175+ * - bucketName : [Skip] undefined
194176 * - syncFlags : [Select] ["--dependency-layer","--use-container","--save-params"]
195177 */
196178
@@ -221,12 +203,17 @@ describe('SAM SyncWizard', async () => {
221203 assert . strictEqual ( quickPick . items [ 2 ] . label , 'stack3' )
222204 quickPick . acceptItem ( quickPick . items [ 0 ] )
223205 } )
224- . handleQuickPick ( 'Select an S3 Bucket ' , async ( picker ) => {
206+ . handleQuickPick ( 'Specify S3 bucket for deployment artifacts ' , async ( picker ) => {
225207 await picker . untilReady ( )
226- assert . strictEqual ( picker . items . length , 3 )
227- assert . strictEqual ( picker . items [ 0 ] . label , 'stack-1-bucket' )
228- assert . strictEqual ( picker . items [ 1 ] . label , 'stack-2-bucket' )
229- assert . strictEqual ( picker . items [ 2 ] . label , 'stack-3-bucket' )
208+ assert . strictEqual ( picker . items . length , 2 )
209+ assert . deepEqual ( picker . items [ 0 ] , {
210+ label : 'Create a SAM CLI managed S3 bucket' ,
211+ data : BucketSource . SamCliManaged ,
212+ } )
213+ assert . deepEqual ( picker . items [ 1 ] , {
214+ label : 'Specify an S3 bucket' ,
215+ data : BucketSource . UserProvided ,
216+ } )
230217 picker . acceptItem ( picker . items [ 0 ] )
231218 } )
232219 . handleQuickPick ( 'Specify parameters for sync' , async ( picker ) => {
@@ -248,8 +235,9 @@ describe('SAM SyncWizard', async () => {
248235 assert . strictEqual ( parameters . paramsSource , ParamsSource . Specify )
249236 assert . strictEqual ( parameters . region , 'us-west-2' )
250237 assert . strictEqual ( parameters . stackName , 'stack1' )
238+ assert . strictEqual ( parameters . bucketSource , BucketSource . SamCliManaged )
239+ assert ( ! parameters . bucketName )
251240 assert . strictEqual ( parameters . deployType , 'infra' )
252- assert . strictEqual ( parameters . bucketName , 'stack-1-bucket' )
253241 assert . strictEqual ( parameters . skipDependencyLayer , true )
254242 assert . strictEqual ( parameters . syncFlags , '["--dependency-layer","--use-container","--save-params"]' )
255243 prompterTester . assertCallAll ( )
@@ -263,6 +251,7 @@ describe('SAM SyncWizard', async () => {
263251 * - paramsSource : [Select] 3. ('Use default values from samconfig')
264252 * - region : [Skip] null; will use 'us-west-2' from samconfig
265253 * - stackName : [Skip] null; will use 'project-1' from samconfig
254+ * - bucketSource : [Skip] null;
266255 * - bucketName : [Skip] automatically set for bucketSource option 1
267256 * - syncFlags : [Skip] null; will use flags from samconfig
268257 */
@@ -319,6 +308,7 @@ describe('SAM SyncWizard', async () => {
319308 * - paramsSource : [Select] 2. ('Specify required parameters')
320309 * - region : [Select] 'us-west-2'
321310 * - stackName : [Select] 2. 'stack2'
311+ * - bucketSource : [Select] 2. BucketSource.UserProvided
322312 * - bucketName : [select] 3. stack-3-bucket
323313 * - syncFlags : [Select] ["--save-params"]
324314 */
@@ -346,6 +336,19 @@ describe('SAM SyncWizard', async () => {
346336 assert . strictEqual ( picker . items [ 2 ] . label , 'stack3' )
347337 picker . acceptItem ( picker . items [ 1 ] )
348338 } )
339+ . handleQuickPick ( 'Specify S3 bucket for deployment artifacts' , async ( picker ) => {
340+ await picker . untilReady ( )
341+ assert . strictEqual ( picker . items . length , 2 )
342+ assert . deepStrictEqual ( picker . items [ 0 ] , {
343+ label : 'Create a SAM CLI managed S3 bucket' ,
344+ data : BucketSource . SamCliManaged ,
345+ } )
346+ assert . deepStrictEqual ( picker . items [ 1 ] , {
347+ label : 'Specify an S3 bucket' ,
348+ data : BucketSource . UserProvided ,
349+ } )
350+ picker . acceptItem ( picker . items [ 1 ] )
351+ } )
349352 . handleQuickPick ( 'Select an S3 Bucket' , async ( picker ) => {
350353 await picker . untilReady ( )
351354 assert . strictEqual ( picker . items . length , 3 )
@@ -371,6 +374,7 @@ describe('SAM SyncWizard', async () => {
371374 assert . strictEqual ( parameters . paramsSource , ParamsSource . Specify )
372375 assert . strictEqual ( parameters . region , 'us-west-2' )
373376 assert . strictEqual ( parameters . stackName , 'stack2' )
377+ assert . strictEqual ( parameters . bucketSource , BucketSource . UserProvided )
374378 assert . strictEqual ( parameters . bucketName , 'stack-3-bucket' )
375379 assert . strictEqual ( parameters . deployType , 'infra' )
376380 assert . strictEqual ( parameters . skipDependencyLayer , true )
@@ -386,7 +390,8 @@ describe('SAM SyncWizard', async () => {
386390 * - paramsSource : [Select] 3. ('Use default values from samconfig')
387391 * - region : [Skip] null; will use value from samconfig file
388392 * - stackName : [Skip] null; will use value from samconfig file
389- * - bucketName : [Skip] automatically set for bucketSource option 1
393+ * - bucketSource : [Skip] null;
394+ * - bucketName : [Skip] null; automatically set for bucketSource option 1
390395 * - syncFlags : [Skip] null; will use flags from samconfig
391396 */
392397
@@ -417,6 +422,7 @@ describe('SAM SyncWizard', async () => {
417422 assert ( ! parameters . region )
418423 assert ( ! parameters . stackName )
419424 assert ( ! parameters . bucketSource )
425+ assert ( ! parameters . bucketName )
420426 assert . strictEqual ( parameters . skipDependencyLayer , true )
421427 prompterTester . assertCallAll ( )
422428 } )
@@ -471,6 +477,19 @@ describe('SAM SyncWizard', async () => {
471477 assert . strictEqual ( picker . items [ 2 ] . label , 'stack3' )
472478 picker . acceptItem ( picker . items [ 1 ] )
473479 } )
480+ . handleQuickPick ( 'Specify S3 bucket for deployment artifacts' , async ( picker ) => {
481+ await picker . untilReady ( )
482+ assert . strictEqual ( picker . items . length , 2 )
483+ assert . deepStrictEqual ( picker . items [ 0 ] , {
484+ label : 'Create a SAM CLI managed S3 bucket' ,
485+ data : BucketSource . SamCliManaged ,
486+ } )
487+ assert . deepStrictEqual ( picker . items [ 1 ] , {
488+ label : 'Specify an S3 bucket' ,
489+ data : BucketSource . UserProvided ,
490+ } )
491+ picker . acceptItem ( picker . items [ 1 ] )
492+ } )
474493 . handleQuickPick ( 'Select an S3 Bucket' , async ( picker ) => {
475494 await picker . untilReady ( )
476495 assert . strictEqual ( picker . items . length , 3 )
@@ -497,6 +516,7 @@ describe('SAM SyncWizard', async () => {
497516 assert . strictEqual ( parameters . paramsSource , ParamsSource . Specify )
498517 assert . strictEqual ( parameters . region , 'us-west-2' )
499518 assert . strictEqual ( parameters . stackName , 'stack2' )
519+ assert . strictEqual ( parameters . bucketSource , BucketSource . UserProvided )
500520 assert . strictEqual ( parameters . bucketName , 'stack-2-bucket' )
501521 assert . strictEqual ( parameters . deployType , 'infra' )
502522 assert . strictEqual ( parameters . skipDependencyLayer , true )
@@ -645,6 +665,19 @@ describe('SAM SyncWizard', async () => {
645665 const select = quickPick . items . filter ( ( i ) => i . detail === 'us-west-2' ) [ 0 ]
646666 quickPick . acceptItem ( select || quickPick . items [ 0 ] )
647667 } )
668+ . handleQuickPick ( 'Specify S3 bucket for deployment artifacts' , async ( picker ) => {
669+ await picker . untilReady ( )
670+ assert . strictEqual ( picker . items . length , 2 )
671+ assert . deepStrictEqual ( picker . items [ 0 ] , {
672+ label : 'Create a SAM CLI managed S3 bucket' ,
673+ data : BucketSource . SamCliManaged ,
674+ } )
675+ assert . deepStrictEqual ( picker . items [ 1 ] , {
676+ label : 'Specify an S3 bucket' ,
677+ data : BucketSource . UserProvided ,
678+ } )
679+ picker . acceptItem ( picker . items [ 1 ] )
680+ } )
648681 . handleQuickPick ( 'Select an S3 Bucket' , async ( picker ) => {
649682 await picker . untilReady ( )
650683 assert . strictEqual ( picker . items . length , 3 )
@@ -670,6 +703,7 @@ describe('SAM SyncWizard', async () => {
670703 assert . strictEqual ( parameters . paramsSource , ParamsSource . Specify )
671704 assert . strictEqual ( parameters . region , 'us-west-2' )
672705 assert . strictEqual ( parameters . stackName , 'stack2' )
706+ assert . strictEqual ( parameters . bucketSource , BucketSource . UserProvided )
673707 assert . strictEqual ( parameters . bucketName , 'stack-2-bucket' )
674708 assert . strictEqual ( parameters . deployType , 'infra' )
675709 assert . strictEqual ( parameters . skipDependencyLayer , true )
@@ -720,13 +754,18 @@ describe('SAM SyncWizard', async () => {
720754 assert . strictEqual ( picker . items [ 2 ] . label , 'stack3' )
721755 picker . acceptItem ( picker . items [ 2 ] )
722756 } )
723- . handleQuickPick ( 'Select an S3 Bucket ' , async ( picker ) => {
757+ . handleQuickPick ( 'Specify S3 bucket for deployment artifacts ' , async ( picker ) => {
724758 await picker . untilReady ( )
725- assert . strictEqual ( picker . items . length , 3 )
726- assert . strictEqual ( picker . items [ 0 ] . label , 'stack-1-bucket' )
727- assert . strictEqual ( picker . items [ 1 ] . label , 'stack-2-bucket' )
728- assert . strictEqual ( picker . items [ 2 ] . label , 'stack-3-bucket' )
729- picker . acceptItem ( picker . items [ 2 ] )
759+ assert . strictEqual ( picker . items . length , 2 )
760+ assert . deepStrictEqual ( picker . items [ 0 ] , {
761+ label : 'Create a SAM CLI managed S3 bucket' ,
762+ data : BucketSource . SamCliManaged ,
763+ } )
764+ assert . deepStrictEqual ( picker . items [ 1 ] , {
765+ label : 'Specify an S3 bucket' ,
766+ data : BucketSource . UserProvided ,
767+ } )
768+ picker . acceptItem ( picker . items [ 0 ] )
730769 } )
731770 . handleQuickPick ( 'Specify parameters for sync' , async ( picker ) => {
732771 await picker . untilReady ( )
@@ -746,7 +785,8 @@ describe('SAM SyncWizard', async () => {
746785 assert . strictEqual ( parameters . paramsSource , ParamsSource . SpecifyAndSave )
747786 assert . strictEqual ( parameters . region , 'us-west-2' )
748787 assert . strictEqual ( parameters . stackName , 'stack3' )
749- assert . strictEqual ( parameters . bucketName , 'stack-3-bucket' )
788+ assert . strictEqual ( parameters . bucketSource , BucketSource . SamCliManaged )
789+ assert ( ! parameters . bucketName )
750790 assert . strictEqual ( parameters . deployType , 'infra' )
751791 assert . strictEqual ( parameters . skipDependencyLayer , true )
752792 assert . strictEqual ( parameters . syncFlags , '["--dependency-layer","--use-container"]' )
@@ -923,6 +963,12 @@ describe('SAM runSync', () => {
923963 assert . strictEqual ( picker . items [ 2 ] . label , 'stack3' )
924964 picker . acceptItem ( picker . items [ 2 ] )
925965 } )
966+ . handleQuickPick ( 'Specify S3 bucket for deployment artifacts' , async ( picker ) => {
967+ await picker . untilReady ( )
968+ assert . strictEqual ( picker . items . length , 2 )
969+ assert . strictEqual ( picker . items [ 1 ] . label , 'Specify an S3 bucket' )
970+ picker . acceptItem ( picker . items [ 1 ] )
971+ } )
926972 . handleQuickPick ( 'Select an S3 Bucket' , async ( picker ) => {
927973 await picker . untilReady ( )
928974 assert . strictEqual ( picker . items . length , 3 )
@@ -1002,6 +1048,12 @@ describe('SAM runSync', () => {
10021048 assert . strictEqual ( quickPick . items [ 0 ] . label , 'stack1' )
10031049 quickPick . acceptItem ( quickPick . items [ 0 ] )
10041050 } )
1051+ . handleQuickPick ( 'Specify S3 bucket for deployment artifacts' , async ( picker ) => {
1052+ await picker . untilReady ( )
1053+ assert . strictEqual ( picker . items . length , 2 )
1054+ assert . strictEqual ( picker . items [ 1 ] . label , 'Specify an S3 bucket' )
1055+ picker . acceptItem ( picker . items [ 1 ] )
1056+ } )
10051057 . handleQuickPick ( 'Select an S3 Bucket' , async ( picker ) => {
10061058 await picker . untilReady ( )
10071059 assert . strictEqual ( picker . items [ 0 ] . label , 'stack-1-bucket' )
0 commit comments