Skip to content

Commit 8723113

Browse files
authored
Merge pull request #113 from ekristen/feat-configurable-scanner
feat: feat configurable scanner
2 parents ea3f4f6 + 4301583 commit 8723113

File tree

5 files changed

+294
-65
lines changed

5 files changed

+294
-65
lines changed

pkg/nuke/nuke_filter_test.go

+50-14
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,18 @@ func Test_NukeFiltersMatch(t *testing.T) {
6666
SessionOne: "testing",
6767
SecondResource: true,
6868
}
69-
newScanner := scanner.New("Owner", []string{TestResourceType2}, opts)
69+
70+
newScanner, err := scanner.New(&scanner.Config{
71+
Owner: "Owner",
72+
ResourceTypes: []string{TestResourceType2},
73+
Opts: opts,
74+
})
75+
assert.NoError(t, err)
7076

7177
sErr := n.RegisterScanner(testScope, newScanner)
7278
assert.NoError(t, sErr)
7379

74-
err := n.Scan(context.TODO())
80+
err = n.Scan(context.TODO())
7581
assert.NoError(t, err)
7682
assert.Equal(t, 1, n.Queue.Total())
7783
assert.Equal(t, 1, n.Queue.Count(queue.ItemStateFiltered))
@@ -106,12 +112,17 @@ func Test_NukeFiltersMatchGroups_Match(t *testing.T) {
106112
SessionOne: "testing",
107113
SecondResource: true,
108114
}
109-
newScanner := scanner.New("Owner", []string{TestResourceType2}, opts)
115+
newScanner, err := scanner.New(&scanner.Config{
116+
Owner: "Owner",
117+
ResourceTypes: []string{TestResourceType2},
118+
Opts: opts,
119+
})
120+
assert.NoError(t, err)
110121

111122
sErr := n.RegisterScanner(testScope, newScanner)
112123
assert.NoError(t, sErr)
113124

114-
err := n.Scan(context.TODO())
125+
err = n.Scan(context.TODO())
115126
assert.NoError(t, err)
116127
assert.Equal(t, 1, n.Queue.Total())
117128
assert.Equal(t, 1, n.Queue.Count(queue.ItemStateFiltered))
@@ -146,12 +157,17 @@ func Test_NukeFiltersMatchGroups_NoMatch(t *testing.T) {
146157
SessionOne: "testing",
147158
SecondResource: true,
148159
}
149-
newScanner := scanner.New("Owner", []string{TestResourceType2}, opts)
160+
newScanner, err := scanner.New(&scanner.Config{
161+
Owner: "Owner",
162+
ResourceTypes: []string{TestResourceType2},
163+
Opts: opts,
164+
})
165+
assert.NoError(t, err)
150166

151167
sErr := n.RegisterScanner(testScope, newScanner)
152168
assert.NoError(t, sErr)
153169

154-
err := n.Scan(context.TODO())
170+
err = n.Scan(context.TODO())
155171
assert.NoError(t, err)
156172
assert.Equal(t, 1, n.Queue.Total())
157173
assert.Equal(t, 0, n.Queue.Count(queue.ItemStateFiltered))
@@ -186,12 +202,17 @@ func Test_NukeFiltersMatchGroups_NoMatch_WithError(t *testing.T) {
186202
SessionOne: "testing",
187203
SecondResource: true,
188204
}
189-
newScanner := scanner.New("Owner", []string{TestResourceType2}, opts)
205+
newScanner, err := scanner.New(&scanner.Config{
206+
Owner: "Owner",
207+
ResourceTypes: []string{TestResourceType2},
208+
Opts: opts,
209+
})
210+
assert.NoError(t, err)
190211

191212
sErr := n.RegisterScanner(testScope, newScanner)
192213
assert.NoError(t, sErr)
193214

194-
err := n.Scan(context.TODO())
215+
err = n.Scan(context.TODO())
195216
assert.Error(t, err)
196217
assert.Equal(t, "error parsing regexp: missing closing ): `^(testing$`", err.Error())
197218
}
@@ -219,12 +240,17 @@ func Test_NukeFiltersMatchInverted(t *testing.T) {
219240
SessionOne: "testing",
220241
SecondResource: true,
221242
}
222-
newScanner := scanner.New("Owner", []string{TestResourceType2}, opts)
243+
newScanner, err := scanner.New(&scanner.Config{
244+
Owner: "Owner",
245+
ResourceTypes: []string{TestResourceType2},
246+
Opts: opts,
247+
})
248+
assert.NoError(t, err)
223249

224250
sErr := n.RegisterScanner(testScope, newScanner)
225251
assert.NoError(t, sErr)
226252

227-
err := n.Scan(context.TODO())
253+
err = n.Scan(context.TODO())
228254
assert.NoError(t, err)
229255
assert.Equal(t, 1, n.Queue.Total())
230256
assert.Equal(t, 0, n.Queue.Count(queue.ItemStateFiltered))
@@ -252,12 +278,17 @@ func Test_Nuke_Filters_NoMatch(t *testing.T) {
252278
SessionOne: "testing",
253279
SecondResource: true,
254280
}
255-
newScanner := scanner.New("Owner", []string{TestResourceType2}, opts)
281+
newScanner, err := scanner.New(&scanner.Config{
282+
Owner: "Owner",
283+
ResourceTypes: []string{TestResourceType2},
284+
Opts: opts,
285+
})
286+
assert.NoError(t, err)
256287

257288
sErr := n.RegisterScanner(testScope, newScanner)
258289
assert.NoError(t, sErr)
259290

260-
err := n.Scan(context.TODO())
291+
err = n.Scan(context.TODO())
261292
assert.NoError(t, err)
262293
assert.Equal(t, 1, n.Queue.Total())
263294
assert.Equal(t, 0, n.Queue.Count(queue.ItemStateFiltered))
@@ -284,12 +315,17 @@ func Test_Nuke_Filters_ErrorCustomProps(t *testing.T) {
284315
opts := TestOpts{
285316
SessionOne: "testing",
286317
}
287-
newScanner := scanner.New("Owner", []string{TestResourceType}, opts)
318+
newScanner, err := scanner.New(&scanner.Config{
319+
Owner: "Owner",
320+
ResourceTypes: []string{TestResourceType},
321+
Opts: opts,
322+
})
323+
assert.NoError(t, err)
288324

289325
sErr := n.RegisterScanner(testScope, newScanner)
290326
assert.NoError(t, sErr)
291327

292-
err := n.Scan(context.TODO())
328+
err = n.Scan(context.TODO())
293329
assert.NoError(t, err)
294330

295331
assert.Equal(t, 1, n.Queue.Total())

pkg/nuke/nuke_run_test.go

+81-11
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,14 @@ func Test_Nuke_Run_Simple(t *testing.T) {
8686
Lister: &TestResourceSuccessLister{},
8787
})
8888

89-
scannerErr := n.RegisterScanner(testScope, scanner.New("Owner", []string{"TestResourceSuccess"}, nil))
89+
s, err := scanner.New(&scanner.Config{
90+
Owner: "Owner",
91+
ResourceTypes: []string{"TestResourceSuccess"},
92+
Opts: nil,
93+
})
94+
assert.NoError(t, err)
95+
96+
scannerErr := n.RegisterScanner(testScope, s)
9097
assert.NoError(t, scannerErr)
9198

9299
runErr := n.Run(context.TODO())
@@ -112,7 +119,14 @@ func Test_Nuke_Run_ScanError(t *testing.T) {
112119
Lister: &TestResourceSuccessLister{},
113120
})
114121

115-
scannerErr := n.RegisterScanner(testScope, scanner.New("Owner", []string{"TestResourceSuccess"}, nil))
122+
s, err := scanner.New(&scanner.Config{
123+
Owner: "Owner",
124+
ResourceTypes: []string{"TestResourceSuccess"},
125+
Opts: nil,
126+
})
127+
assert.NoError(t, err)
128+
129+
scannerErr := n.RegisterScanner(testScope, s)
116130
assert.NoError(t, scannerErr)
117131

118132
runErr := n.Run(ctx)
@@ -155,7 +169,14 @@ func Test_NukeRunSimpleWithSecondPromptError(t *testing.T) {
155169
Lister: &TestResourceSuccessLister{},
156170
})
157171

158-
scannerErr := n.RegisterScanner(testScope, scanner.New("Owner", []string{"TestResourceSuccess"}, nil))
172+
s, err := scanner.New(&scanner.Config{
173+
Owner: "Owner",
174+
ResourceTypes: []string{"TestResourceSuccess"},
175+
Opts: nil,
176+
})
177+
assert.NoError(t, err)
178+
179+
scannerErr := n.RegisterScanner(testScope, s)
159180
assert.NoError(t, scannerErr)
160181

161182
runErr := n.Run(context.TODO())
@@ -175,7 +196,14 @@ func Test_Nuke_Run_SimpleWithNoDryRun(t *testing.T) {
175196
Lister: &TestResourceSuccessLister{},
176197
})
177198

178-
scannerErr := n.RegisterScanner(testScope, scanner.New("Owner", []string{"TestResourceSuccess"}, nil))
199+
s, err := scanner.New(&scanner.Config{
200+
Owner: "Owner",
201+
ResourceTypes: []string{"TestResourceSuccess"},
202+
Opts: nil,
203+
})
204+
assert.NoError(t, err)
205+
206+
scannerErr := n.RegisterScanner(testScope, s)
179207
assert.NoError(t, scannerErr)
180208

181209
runErr := n.Run(context.TODO())
@@ -202,7 +230,13 @@ func Test_Nuke_Run_Failure(t *testing.T) {
202230
Lister: &TestResourceFailureLister{},
203231
})
204232

205-
newScanner := scanner.New("Owner", []string{"TestResourceSuccess", "TestResourceFailure"}, nil)
233+
newScanner, err := scanner.New(&scanner.Config{
234+
Owner: "Owner",
235+
ResourceTypes: []string{"TestResourceSuccess", "TestResourceFailure"},
236+
Opts: nil,
237+
})
238+
assert.NoError(t, err)
239+
206240
scannerErr := n.RegisterScanner(testScope, newScanner)
207241
assert.NoError(t, scannerErr)
208242

@@ -232,7 +266,13 @@ func Test_NukeRunWithMaxWaitRetries(t *testing.T) {
232266
Lister: &TestResourceWaitLister{},
233267
})
234268

235-
newScanner := scanner.New("Owner", []string{"TestResourceSuccess"}, nil)
269+
newScanner, err := scanner.New(&scanner.Config{
270+
Owner: "Owner",
271+
ResourceTypes: []string{"TestResourceSuccess"},
272+
Opts: nil,
273+
})
274+
assert.NoError(t, err)
275+
236276
scannerErr := n.RegisterScanner(testScope, newScanner)
237277
assert.NoError(t, scannerErr)
238278

@@ -326,7 +366,13 @@ func TestNuke_RunWithWaitOnDependencies(t *testing.T) {
326366
},
327367
})
328368

329-
newScanner := scanner.New("Owner", []string{"TestResourceAlpha", "TestResourceBeta"}, nil)
369+
newScanner, err := scanner.New(&scanner.Config{
370+
Owner: "Owner",
371+
ResourceTypes: []string{"TestResourceAlpha", "TestResourceBeta"},
372+
Opts: nil,
373+
})
374+
assert.NoError(t, err)
375+
330376
scannerErr := n.RegisterScanner(testScope, newScanner)
331377
assert.NoError(t, scannerErr)
332378

@@ -355,7 +401,13 @@ func TestNuke_RunWithHandleWaitFail(t *testing.T) {
355401
},
356402
})
357403

358-
newScanner := scanner.New("Owner", []string{"TestResourceAlpha"}, nil)
404+
newScanner, err := scanner.New(&scanner.Config{
405+
Owner: "Owner",
406+
ResourceTypes: []string{"TestResourceAlpha"},
407+
Opts: nil,
408+
})
409+
assert.NoError(t, err)
410+
359411
scannerErr := n.RegisterScanner(testScope, newScanner)
360412
assert.NoError(t, scannerErr)
361413

@@ -380,7 +432,13 @@ func TestNuke_RunNoResources(t *testing.T) {
380432

381433
registry.ClearRegistry()
382434

383-
newScanner := scanner.New("Owner", []string{}, nil)
435+
newScanner, err := scanner.New(&scanner.Config{
436+
Owner: "Owner",
437+
ResourceTypes: []string{},
438+
Opts: nil,
439+
})
440+
assert.NoError(t, err)
441+
384442
scannerErr := n.RegisterScanner(testScope, newScanner)
385443
assert.NoError(t, scannerErr)
386444

@@ -409,7 +467,13 @@ func TestNuke_HandleWaitListError(t *testing.T) {
409467
},
410468
})
411469

412-
newScanner := scanner.New("Owner", []string{"TestResourceAlpha"}, nil)
470+
newScanner, err := scanner.New(&scanner.Config{
471+
Owner: "Owner",
472+
ResourceTypes: []string{"TestResourceAlpha"},
473+
Opts: nil,
474+
})
475+
assert.NoError(t, err)
476+
413477
scannerErr := n.RegisterScanner(testScope, newScanner)
414478
assert.NoError(t, scannerErr)
415479

@@ -447,7 +511,13 @@ func TestNuke_SecondFilterFail(t *testing.T) {
447511
Lister: &TestResourceBetaLister{},
448512
})
449513

450-
newScanner := scanner.New("Owner", []string{"TestResourceBeta"}, nil)
514+
newScanner, err := scanner.New(&scanner.Config{
515+
Owner: "Owner",
516+
ResourceTypes: []string{"TestResourceBeta"},
517+
Opts: nil,
518+
})
519+
assert.NoError(t, err)
520+
451521
scannerErr := n.RegisterScanner(testScope, newScanner)
452522
assert.NoError(t, scannerErr)
453523

0 commit comments

Comments
 (0)