@@ -30,7 +30,11 @@ func TestParseCLIArgs(t *testing.T) {
3030 SkipDeployComponentUnderTest : false ,
3131 SkipDestroyComponentUnderTest : false ,
3232 SkipTeardownTestSuite : false ,
33+ SkipVendorDependencies : false ,
3334 SkipVerifyEnabledFlag : false ,
35+ SkipTests : false ,
36+ ForceNewSuite : false ,
37+ Index : - 1 ,
3438 },
3539 expected : & TestSuite {
3640 SkipNukeTestAccount : false ,
@@ -40,11 +44,15 @@ func TestParseCLIArgs(t *testing.T) {
4044 SkipDeployComponentUnderTest : false ,
4145 SkipDestroyComponentUnderTest : false ,
4246 SkipTeardownTestSuite : false ,
47+ SkipVendorDependencies : false ,
4348 SkipVerifyEnabledFlag : false ,
49+ SkipTests : false ,
50+ ForceNewSuite : false ,
51+ Index : - 1 ,
4452 },
4553 },
4654 {
47- name : "all flags set to true" ,
55+ name : "all skip flags set to true" ,
4856 args : []string {"prog" ,
4957 "-skip-aws-nuke" ,
5058 "-skip-deploy-deps" ,
@@ -53,7 +61,9 @@ func TestParseCLIArgs(t *testing.T) {
5361 "-skip-deploy-cut" ,
5462 "-skip-destroy-cut" ,
5563 "-skip-teardown" ,
64+ "-skip-vendor" ,
5665 "-skip-verify-enabled-flag" ,
66+ "-skip-tests" ,
5767 },
5868 initial : & TestSuite {},
5969 expected : & TestSuite {
@@ -64,7 +74,54 @@ func TestParseCLIArgs(t *testing.T) {
6474 SkipDeployComponentUnderTest : true ,
6575 SkipDestroyComponentUnderTest : true ,
6676 SkipTeardownTestSuite : true ,
77+ SkipVendorDependencies : true ,
6778 SkipVerifyEnabledFlag : true ,
79+ SkipTests : true ,
80+ ForceNewSuite : false ,
81+ Index : - 1 ,
82+ },
83+ },
84+ {
85+ name : "force new suite and suite index" ,
86+ args : []string {"prog" ,
87+ "-force-new-suite" ,
88+ "-suite-index=5" ,
89+ },
90+ initial : & TestSuite {},
91+ expected : & TestSuite {
92+ ForceNewSuite : true ,
93+ Index : 5 ,
94+ },
95+ },
96+ {
97+ name : "initial values respected when not overridden" ,
98+ args : []string {"prog" ,
99+ "-skip-aws-nuke" ,
100+ "-skip-deploy-deps" ,
101+ },
102+ initial : & TestSuite {
103+ SkipDestroyDependencies : true ,
104+ SkipSetupComponentUnderTest : true ,
105+ SkipDeployComponentUnderTest : true ,
106+ SkipDestroyComponentUnderTest : true ,
107+ SkipTeardownTestSuite : true ,
108+ SkipVendorDependencies : true ,
109+ SkipVerifyEnabledFlag : true ,
110+ SkipTests : true ,
111+ },
112+ expected : & TestSuite {
113+ SkipNukeTestAccount : true ,
114+ SkipDeployDependencies : true ,
115+ SkipDestroyDependencies : true ,
116+ SkipSetupComponentUnderTest : true ,
117+ SkipDeployComponentUnderTest : true ,
118+ SkipDestroyComponentUnderTest : true ,
119+ SkipTeardownTestSuite : true ,
120+ SkipVendorDependencies : true ,
121+ SkipVerifyEnabledFlag : true ,
122+ SkipTests : true ,
123+ ForceNewSuite : false ,
124+ Index : - 1 ,
68125 },
69126 },
70127 }
@@ -111,6 +168,14 @@ func TestSkipDestroyDependencies(t *testing.T) {
111168 },
112169 expected : true ,
113170 },
171+ {
172+ name : "both flags true" ,
173+ ts : & TestSuite {
174+ SkipDestroyDependencies : true ,
175+ SkipDestroyComponentUnderTest : true ,
176+ },
177+ expected : true ,
178+ },
114179 }
115180
116181 for _ , tt := range tests {
@@ -128,16 +193,38 @@ func TestSkipTeardownTestSuite(t *testing.T) {
128193 expected bool
129194 }{
130195 {
131- name : "both flags false" ,
196+ name : "all flags false" ,
132197 ts : & TestSuite {
133- SkipTeardownTestSuite : false ,
198+ SkipTeardownTestSuite : false ,
199+ SkipDestroyDependencies : false ,
200+ SkipDestroyComponentUnderTest : false ,
134201 },
135202 expected : false ,
136203 },
137204 {
138205 name : "SkipTeardownTestSuite true" ,
139206 ts : & TestSuite {
140- SkipTeardownTestSuite : true ,
207+ SkipTeardownTestSuite : true ,
208+ SkipDestroyDependencies : false ,
209+ SkipDestroyComponentUnderTest : false ,
210+ },
211+ expected : true ,
212+ },
213+ {
214+ name : "SkipDestroyDependencies true" ,
215+ ts : & TestSuite {
216+ SkipTeardownTestSuite : false ,
217+ SkipDestroyDependencies : true ,
218+ SkipDestroyComponentUnderTest : false ,
219+ },
220+ expected : true ,
221+ },
222+ {
223+ name : "SkipDestroyComponentUnderTest true" ,
224+ ts : & TestSuite {
225+ SkipTeardownTestSuite : false ,
226+ SkipDestroyDependencies : false ,
227+ SkipDestroyComponentUnderTest : true ,
141228 },
142229 expected : true ,
143230 },
@@ -150,3 +237,69 @@ func TestSkipTeardownTestSuite(t *testing.T) {
150237 })
151238 }
152239}
240+
241+ func TestSkipNukeTestAccount (t * testing.T ) {
242+ tests := []struct {
243+ name string
244+ ts * TestSuite
245+ expected bool
246+ }{
247+ {
248+ name : "all flags false" ,
249+ ts : & TestSuite {
250+ SkipNukeTestAccount : false ,
251+ SkipTeardownTestSuite : false ,
252+ SkipDestroyDependencies : false ,
253+ SkipDestroyComponentUnderTest : false ,
254+ },
255+ expected : false ,
256+ },
257+ {
258+ name : "SkipNukeTestAccount true" ,
259+ ts : & TestSuite {
260+ SkipNukeTestAccount : true ,
261+ SkipTeardownTestSuite : false ,
262+ SkipDestroyDependencies : false ,
263+ SkipDestroyComponentUnderTest : false ,
264+ },
265+ expected : true ,
266+ },
267+ {
268+ name : "SkipTeardownTestSuite true" ,
269+ ts : & TestSuite {
270+ SkipNukeTestAccount : false ,
271+ SkipTeardownTestSuite : true ,
272+ SkipDestroyDependencies : false ,
273+ SkipDestroyComponentUnderTest : false ,
274+ },
275+ expected : true ,
276+ },
277+ {
278+ name : "SkipDestroyDependencies true" ,
279+ ts : & TestSuite {
280+ SkipNukeTestAccount : false ,
281+ SkipTeardownTestSuite : false ,
282+ SkipDestroyDependencies : true ,
283+ SkipDestroyComponentUnderTest : false ,
284+ },
285+ expected : true ,
286+ },
287+ {
288+ name : "SkipDestroyComponentUnderTest true" ,
289+ ts : & TestSuite {
290+ SkipNukeTestAccount : false ,
291+ SkipTeardownTestSuite : false ,
292+ SkipDestroyDependencies : false ,
293+ SkipDestroyComponentUnderTest : true ,
294+ },
295+ expected : true ,
296+ },
297+ }
298+
299+ for _ , tt := range tests {
300+ t .Run (tt .name , func (t * testing.T ) {
301+ result := skipNukeTestAccount (tt .ts )
302+ assert .Equal (t , tt .expected , result )
303+ })
304+ }
305+ }
0 commit comments