@@ -14,181 +14,49 @@ function makeInput(overrides: Partial<ComputeByoStepsInput> = {}): ComputeByoSte
1414 } ;
1515}
1616
17- describe ( 'computeByoSteps' , ( ) => {
18- describe ( 'base steps' , ( ) => {
19- it ( 'Bedrock provider excludes apiKey' , ( ) => {
20- const steps = computeByoSteps ( makeInput ( { modelProvider : 'Bedrock' } ) ) ;
21- expect ( steps ) . not . toContain ( 'apiKey' ) ;
22- expect ( steps ) . toEqual ( [ 'codeLocation' , 'buildType' , 'modelProvider' , 'advanced' , 'confirm' ] ) ;
23- } ) ;
24-
25- it ( 'non-Bedrock provider includes apiKey' , ( ) => {
26- const steps = computeByoSteps ( makeInput ( { modelProvider : 'OpenAI' } ) ) ;
27- expect ( steps ) . toContain ( 'apiKey' ) ;
28- expect ( steps ) . toEqual ( [ 'codeLocation' , 'buildType' , 'modelProvider' , 'apiKey' , 'advanced' , 'confirm' ] ) ;
29- } ) ;
30- } ) ;
31-
32- describe ( 'dockerfile advanced setting' , ( ) => {
33- it ( 'Container build with dockerfile selected includes dockerfile step' , ( ) => {
34- const steps = computeByoSteps (
35- makeInput ( {
36- buildType : 'Container' ,
37- advancedSettings : new Set < AdvancedSettingId > ( [ 'dockerfile' ] ) ,
38- } )
39- ) ;
40- expect ( steps ) . toContain ( 'dockerfile' ) ;
41- const advIdx = steps . indexOf ( 'advanced' ) ;
42- expect ( steps [ advIdx + 1 ] ) . toBe ( 'dockerfile' ) ;
43- } ) ;
44-
45- it ( 'CodeZip build with dockerfile selected does NOT include dockerfile step' , ( ) => {
46- const steps = computeByoSteps (
47- makeInput ( {
48- buildType : 'CodeZip' ,
49- advancedSettings : new Set < AdvancedSettingId > ( [ 'dockerfile' ] ) ,
50- } )
51- ) ;
52- expect ( steps ) . not . toContain ( 'dockerfile' ) ;
53- } ) ;
54-
55- it ( 'dockerfile-only selection on Container has steps: advanced, dockerfile, confirm' , ( ) => {
56- const steps = computeByoSteps (
57- makeInput ( {
58- buildType : 'Container' ,
59- advancedSettings : new Set < AdvancedSettingId > ( [ 'dockerfile' ] ) ,
60- } )
61- ) ;
62- const advIdx = steps . indexOf ( 'advanced' ) ;
63- expect ( steps . slice ( advIdx ) ) . toEqual ( [ 'advanced' , 'dockerfile' , 'confirm' ] ) ;
64- } ) ;
65- } ) ;
66-
67- describe ( 'network advanced setting' , ( ) => {
68- it ( 'network selected adds networkMode' , ( ) => {
69- const steps = computeByoSteps (
70- makeInput ( {
71- advancedSettings : new Set < AdvancedSettingId > ( [ 'network' ] ) ,
72- } )
73- ) ;
74- expect ( steps ) . toContain ( 'networkMode' ) ;
75- expect ( steps ) . not . toContain ( 'subnets' ) ;
76- } ) ;
77-
78- it ( 'network + VPC adds subnets and securityGroups' , ( ) => {
79- const steps = computeByoSteps (
80- makeInput ( {
81- networkMode : 'VPC' ,
82- advancedSettings : new Set < AdvancedSettingId > ( [ 'network' ] ) ,
83- } )
84- ) ;
85- const advIdx = steps . indexOf ( 'advanced' ) ;
86- expect ( steps . slice ( advIdx ) ) . toEqual ( [ 'advanced' , 'networkMode' , 'subnets' , 'securityGroups' , 'confirm' ] ) ;
87- } ) ;
17+ describe ( 'computeByoSteps - dockerfile' , ( ) => {
18+ it ( 'Container build with dockerfile selected includes dockerfile step' , ( ) => {
19+ const steps = computeByoSteps (
20+ makeInput ( {
21+ buildType : 'Container' ,
22+ advancedSettings : new Set < AdvancedSettingId > ( [ 'dockerfile' ] ) ,
23+ } )
24+ ) ;
25+ expect ( steps ) . toContain ( 'dockerfile' ) ;
26+ const advIdx = steps . indexOf ( 'advanced' ) ;
27+ expect ( steps [ advIdx + 1 ] ) . toBe ( 'dockerfile' ) ;
8828 } ) ;
8929
90- describe ( 'partial advanced selections' , ( ) => {
91- it ( 'headers-only adds requestHeaderAllowlist' , ( ) => {
92- const steps = computeByoSteps (
93- makeInput ( {
94- advancedSettings : new Set < AdvancedSettingId > ( [ 'headers' ] ) ,
95- } )
96- ) ;
97- const advIdx = steps . indexOf ( 'advanced' ) ;
98- expect ( steps . slice ( advIdx ) ) . toEqual ( [ 'advanced' , 'requestHeaderAllowlist' , 'confirm' ] ) ;
99- } ) ;
100-
101- it ( 'auth-only adds authorizerType' , ( ) => {
102- const steps = computeByoSteps (
103- makeInput ( {
104- advancedSettings : new Set < AdvancedSettingId > ( [ 'auth' ] ) ,
105- } )
106- ) ;
107- const advIdx = steps . indexOf ( 'advanced' ) ;
108- expect ( steps . slice ( advIdx ) ) . toEqual ( [ 'advanced' , 'authorizerType' , 'confirm' ] ) ;
109- } ) ;
110-
111- it ( 'lifecycle-only adds idleTimeout and maxLifetime' , ( ) => {
112- const steps = computeByoSteps (
113- makeInput ( {
114- advancedSettings : new Set < AdvancedSettingId > ( [ 'lifecycle' ] ) ,
115- } )
116- ) ;
117- const advIdx = steps . indexOf ( 'advanced' ) ;
118- expect ( steps . slice ( advIdx ) ) . toEqual ( [ 'advanced' , 'idleTimeout' , 'maxLifetime' , 'confirm' ] ) ;
119- } ) ;
120-
121- it ( 'dockerfile + lifecycle on Container includes both groups' , ( ) => {
122- const steps = computeByoSteps (
123- makeInput ( {
124- buildType : 'Container' ,
125- advancedSettings : new Set < AdvancedSettingId > ( [ 'dockerfile' , 'lifecycle' ] ) ,
126- } )
127- ) ;
128- const advIdx = steps . indexOf ( 'advanced' ) ;
129- expect ( steps . slice ( advIdx ) ) . toEqual ( [ 'advanced' , 'dockerfile' , 'idleTimeout' , 'maxLifetime' , 'confirm' ] ) ;
130- expect ( steps ) . not . toContain ( 'networkMode' ) ;
131- } ) ;
30+ it ( 'CodeZip build with dockerfile selected does NOT include dockerfile step' , ( ) => {
31+ const steps = computeByoSteps (
32+ makeInput ( {
33+ buildType : 'CodeZip' ,
34+ advancedSettings : new Set < AdvancedSettingId > ( [ 'dockerfile' ] ) ,
35+ } )
36+ ) ;
37+ expect ( steps ) . not . toContain ( 'dockerfile' ) ;
13238 } ) ;
13339
134- describe ( 'full selection' , ( ) => {
135- it ( 'all settings on Container + VPC produces complete sub-step list' , ( ) => {
136- const steps = computeByoSteps (
137- makeInput ( {
138- buildType : 'Container' ,
139- networkMode : 'VPC' ,
140- advancedSettings : new Set < AdvancedSettingId > ( [ 'dockerfile' , 'network' , 'headers' , 'auth' , 'lifecycle' ] ) ,
141- } )
142- ) ;
143- const advIdx = steps . indexOf ( 'advanced' ) ;
144- expect ( steps . slice ( advIdx ) ) . toEqual ( [
145- 'advanced' ,
146- 'dockerfile' ,
147- 'networkMode' ,
148- 'subnets' ,
149- 'securityGroups' ,
150- 'requestHeaderAllowlist' ,
151- 'authorizerType' ,
152- 'idleTimeout' ,
153- 'maxLifetime' ,
154- 'confirm' ,
155- ] ) ;
156- } ) ;
40+ it ( 'dockerfile-only selection on Container has steps: advanced, dockerfile, confirm' , ( ) => {
41+ const steps = computeByoSteps (
42+ makeInput ( {
43+ buildType : 'Container' ,
44+ advancedSettings : new Set < AdvancedSettingId > ( [ 'dockerfile' ] ) ,
45+ } )
46+ ) ;
47+ const advIdx = steps . indexOf ( 'advanced' ) ;
48+ expect ( steps . slice ( advIdx ) ) . toEqual ( [ 'advanced' , 'dockerfile' , 'confirm' ] ) ;
15749 } ) ;
15850
159- describe ( 'empty selection' , ( ) => {
160- it ( 'no advanced settings means no sub-steps' , ( ) => {
161- const steps = computeByoSteps (
162- makeInput ( {
163- advancedSettings : new Set < AdvancedSettingId > ( ) ,
164- } )
165- ) ;
166- const advIdx = steps . indexOf ( 'advanced' ) ;
167- expect ( steps . slice ( advIdx ) ) . toEqual ( [ 'advanced' , 'confirm' ] ) ;
168- } ) ;
169- } ) ;
170-
171- describe ( 'CUSTOM_JWT injects jwtConfig' , ( ) => {
172- it ( 'CUSTOM_JWT with auth selected adds jwtConfig after authorizerType' , ( ) => {
173- const steps = computeByoSteps (
174- makeInput ( {
175- authorizerType : 'CUSTOM_JWT' ,
176- advancedSettings : new Set < AdvancedSettingId > ( [ 'auth' ] ) ,
177- } )
178- ) ;
179- const authIdx = steps . indexOf ( 'authorizerType' ) ;
180- expect ( steps [ authIdx + 1 ] ) . toBe ( 'jwtConfig' ) ;
181- } ) ;
182-
183- it ( 'CUSTOM_JWT without auth selected does not add jwtConfig' , ( ) => {
184- const steps = computeByoSteps (
185- makeInput ( {
186- authorizerType : 'CUSTOM_JWT' ,
187- advancedSettings : new Set < AdvancedSettingId > ( ) ,
188- } )
189- ) ;
190- expect ( steps ) . not . toContain ( 'jwtConfig' ) ;
191- expect ( steps ) . not . toContain ( 'authorizerType' ) ;
192- } ) ;
51+ it ( 'dockerfile + lifecycle on Container includes both groups' , ( ) => {
52+ const steps = computeByoSteps (
53+ makeInput ( {
54+ buildType : 'Container' ,
55+ advancedSettings : new Set < AdvancedSettingId > ( [ 'dockerfile' , 'lifecycle' ] ) ,
56+ } )
57+ ) ;
58+ const advIdx = steps . indexOf ( 'advanced' ) ;
59+ expect ( steps . slice ( advIdx ) ) . toEqual ( [ 'advanced' , 'dockerfile' , 'idleTimeout' , 'maxLifetime' , 'confirm' ] ) ;
60+ expect ( steps ) . not . toContain ( 'networkMode' ) ;
19361 } ) ;
19462} ) ;
0 commit comments