@@ -66,31 +66,12 @@ import { createTestRegionProvider } from '../regions/testUtil'
66
66
import { ToolkitPromptSettings } from '../../../shared/settings'
67
67
import { DefaultEcrClient } from '../../../shared/clients/ecrClient'
68
68
import assert from 'assert'
69
+ import { BucketSource } from '../../../shared/ui/sam/bucketPrompter'
69
70
70
71
describe ( 'SAM SyncWizard' , async function ( ) {
71
72
const createTester = async ( params ?: Partial < SyncParams > ) =>
72
73
createWizardTester ( new SyncWizard ( { deployType : 'code' , ...params } , await globals . templateRegistry ) )
73
74
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
-
94
75
it ( 'skips prompts if user chooses samconfig file as params source' , async function ( ) {
95
76
const workspaceUri = vscode . workspace . workspaceFolders ?. [ 0 ] ?. uri || vscode . Uri . file ( '/' )
96
77
const rootFolderUri = vscode . Uri . joinPath ( workspaceUri , 'my' )
@@ -190,7 +171,8 @@ describe('SAM SyncWizard', async () => {
190
171
* - paramsSource : [Select] 1. ('Specify required parameters and save as defaults')
191
172
* - region : [Select] 'us-west-2'
192
173
* - stackName : [Select] 1. 'stack1'
193
- * - bucketName : [Select] 1. 'stack-1-bucket'
174
+ * - bucketSource : [Select] 1. BucketSource.SamCliManaged
175
+ * - bucketName : [Skip] undefined
194
176
* - syncFlags : [Select] ["--dependency-layer","--use-container","--save-params"]
195
177
*/
196
178
@@ -221,12 +203,17 @@ describe('SAM SyncWizard', async () => {
221
203
assert . strictEqual ( quickPick . items [ 2 ] . label , 'stack3' )
222
204
quickPick . acceptItem ( quickPick . items [ 0 ] )
223
205
} )
224
- . handleQuickPick ( 'Select an S3 Bucket ' , async ( picker ) => {
206
+ . handleQuickPick ( 'Specify S3 bucket for deployment artifacts ' , async ( picker ) => {
225
207
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
+ } )
230
217
picker . acceptItem ( picker . items [ 0 ] )
231
218
} )
232
219
. handleQuickPick ( 'Specify parameters for sync' , async ( picker ) => {
@@ -248,8 +235,9 @@ describe('SAM SyncWizard', async () => {
248
235
assert . strictEqual ( parameters . paramsSource , ParamsSource . Specify )
249
236
assert . strictEqual ( parameters . region , 'us-west-2' )
250
237
assert . strictEqual ( parameters . stackName , 'stack1' )
238
+ assert . strictEqual ( parameters . bucketSource , BucketSource . SamCliManaged )
239
+ assert ( ! parameters . bucketName )
251
240
assert . strictEqual ( parameters . deployType , 'infra' )
252
- assert . strictEqual ( parameters . bucketName , 'stack-1-bucket' )
253
241
assert . strictEqual ( parameters . skipDependencyLayer , true )
254
242
assert . strictEqual ( parameters . syncFlags , '["--dependency-layer","--use-container","--save-params"]' )
255
243
prompterTester . assertCallAll ( )
@@ -263,6 +251,7 @@ describe('SAM SyncWizard', async () => {
263
251
* - paramsSource : [Select] 3. ('Use default values from samconfig')
264
252
* - region : [Skip] null; will use 'us-west-2' from samconfig
265
253
* - stackName : [Skip] null; will use 'project-1' from samconfig
254
+ * - bucketSource : [Skip] null;
266
255
* - bucketName : [Skip] automatically set for bucketSource option 1
267
256
* - syncFlags : [Skip] null; will use flags from samconfig
268
257
*/
@@ -319,6 +308,7 @@ describe('SAM SyncWizard', async () => {
319
308
* - paramsSource : [Select] 2. ('Specify required parameters')
320
309
* - region : [Select] 'us-west-2'
321
310
* - stackName : [Select] 2. 'stack2'
311
+ * - bucketSource : [Select] 2. BucketSource.UserProvided
322
312
* - bucketName : [select] 3. stack-3-bucket
323
313
* - syncFlags : [Select] ["--save-params"]
324
314
*/
@@ -346,6 +336,19 @@ describe('SAM SyncWizard', async () => {
346
336
assert . strictEqual ( picker . items [ 2 ] . label , 'stack3' )
347
337
picker . acceptItem ( picker . items [ 1 ] )
348
338
} )
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
+ } )
349
352
. handleQuickPick ( 'Select an S3 Bucket' , async ( picker ) => {
350
353
await picker . untilReady ( )
351
354
assert . strictEqual ( picker . items . length , 3 )
@@ -371,6 +374,7 @@ describe('SAM SyncWizard', async () => {
371
374
assert . strictEqual ( parameters . paramsSource , ParamsSource . Specify )
372
375
assert . strictEqual ( parameters . region , 'us-west-2' )
373
376
assert . strictEqual ( parameters . stackName , 'stack2' )
377
+ assert . strictEqual ( parameters . bucketSource , BucketSource . UserProvided )
374
378
assert . strictEqual ( parameters . bucketName , 'stack-3-bucket' )
375
379
assert . strictEqual ( parameters . deployType , 'infra' )
376
380
assert . strictEqual ( parameters . skipDependencyLayer , true )
@@ -386,7 +390,8 @@ describe('SAM SyncWizard', async () => {
386
390
* - paramsSource : [Select] 3. ('Use default values from samconfig')
387
391
* - region : [Skip] null; will use value from samconfig file
388
392
* - 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
390
395
* - syncFlags : [Skip] null; will use flags from samconfig
391
396
*/
392
397
@@ -417,6 +422,7 @@ describe('SAM SyncWizard', async () => {
417
422
assert ( ! parameters . region )
418
423
assert ( ! parameters . stackName )
419
424
assert ( ! parameters . bucketSource )
425
+ assert ( ! parameters . bucketName )
420
426
assert . strictEqual ( parameters . skipDependencyLayer , true )
421
427
prompterTester . assertCallAll ( )
422
428
} )
@@ -471,6 +477,19 @@ describe('SAM SyncWizard', async () => {
471
477
assert . strictEqual ( picker . items [ 2 ] . label , 'stack3' )
472
478
picker . acceptItem ( picker . items [ 1 ] )
473
479
} )
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
+ } )
474
493
. handleQuickPick ( 'Select an S3 Bucket' , async ( picker ) => {
475
494
await picker . untilReady ( )
476
495
assert . strictEqual ( picker . items . length , 3 )
@@ -497,6 +516,7 @@ describe('SAM SyncWizard', async () => {
497
516
assert . strictEqual ( parameters . paramsSource , ParamsSource . Specify )
498
517
assert . strictEqual ( parameters . region , 'us-west-2' )
499
518
assert . strictEqual ( parameters . stackName , 'stack2' )
519
+ assert . strictEqual ( parameters . bucketSource , BucketSource . UserProvided )
500
520
assert . strictEqual ( parameters . bucketName , 'stack-2-bucket' )
501
521
assert . strictEqual ( parameters . deployType , 'infra' )
502
522
assert . strictEqual ( parameters . skipDependencyLayer , true )
@@ -645,6 +665,19 @@ describe('SAM SyncWizard', async () => {
645
665
const select = quickPick . items . filter ( ( i ) => i . detail === 'us-west-2' ) [ 0 ]
646
666
quickPick . acceptItem ( select || quickPick . items [ 0 ] )
647
667
} )
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
+ } )
648
681
. handleQuickPick ( 'Select an S3 Bucket' , async ( picker ) => {
649
682
await picker . untilReady ( )
650
683
assert . strictEqual ( picker . items . length , 3 )
@@ -670,6 +703,7 @@ describe('SAM SyncWizard', async () => {
670
703
assert . strictEqual ( parameters . paramsSource , ParamsSource . Specify )
671
704
assert . strictEqual ( parameters . region , 'us-west-2' )
672
705
assert . strictEqual ( parameters . stackName , 'stack2' )
706
+ assert . strictEqual ( parameters . bucketSource , BucketSource . UserProvided )
673
707
assert . strictEqual ( parameters . bucketName , 'stack-2-bucket' )
674
708
assert . strictEqual ( parameters . deployType , 'infra' )
675
709
assert . strictEqual ( parameters . skipDependencyLayer , true )
@@ -720,13 +754,18 @@ describe('SAM SyncWizard', async () => {
720
754
assert . strictEqual ( picker . items [ 2 ] . label , 'stack3' )
721
755
picker . acceptItem ( picker . items [ 2 ] )
722
756
} )
723
- . handleQuickPick ( 'Select an S3 Bucket ' , async ( picker ) => {
757
+ . handleQuickPick ( 'Specify S3 bucket for deployment artifacts ' , async ( picker ) => {
724
758
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 ] )
730
769
} )
731
770
. handleQuickPick ( 'Specify parameters for sync' , async ( picker ) => {
732
771
await picker . untilReady ( )
@@ -746,7 +785,8 @@ describe('SAM SyncWizard', async () => {
746
785
assert . strictEqual ( parameters . paramsSource , ParamsSource . SpecifyAndSave )
747
786
assert . strictEqual ( parameters . region , 'us-west-2' )
748
787
assert . strictEqual ( parameters . stackName , 'stack3' )
749
- assert . strictEqual ( parameters . bucketName , 'stack-3-bucket' )
788
+ assert . strictEqual ( parameters . bucketSource , BucketSource . SamCliManaged )
789
+ assert ( ! parameters . bucketName )
750
790
assert . strictEqual ( parameters . deployType , 'infra' )
751
791
assert . strictEqual ( parameters . skipDependencyLayer , true )
752
792
assert . strictEqual ( parameters . syncFlags , '["--dependency-layer","--use-container"]' )
@@ -923,6 +963,12 @@ describe('SAM runSync', () => {
923
963
assert . strictEqual ( picker . items [ 2 ] . label , 'stack3' )
924
964
picker . acceptItem ( picker . items [ 2 ] )
925
965
} )
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
+ } )
926
972
. handleQuickPick ( 'Select an S3 Bucket' , async ( picker ) => {
927
973
await picker . untilReady ( )
928
974
assert . strictEqual ( picker . items . length , 3 )
@@ -1002,6 +1048,12 @@ describe('SAM runSync', () => {
1002
1048
assert . strictEqual ( quickPick . items [ 0 ] . label , 'stack1' )
1003
1049
quickPick . acceptItem ( quickPick . items [ 0 ] )
1004
1050
} )
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
+ } )
1005
1057
. handleQuickPick ( 'Select an S3 Bucket' , async ( picker ) => {
1006
1058
await picker . untilReady ( )
1007
1059
assert . strictEqual ( picker . items [ 0 ] . label , 'stack-1-bucket' )
0 commit comments