@@ -16,14 +16,24 @@ import (
1616
1717// mockESClientForConfigure is a mock for testing configure command
1818type mockESClientForConfigure struct {
19+ deleteRepoErr error
1920 configureRepoErr error
2021 configureSLMErr error
22+ repoDeleted bool
2123 repoConfigured bool
2224 slmConfigured bool
2325 lastRepoConfig map [string ]string
2426 lastSLMConfig map [string ]interface {}
2527}
2628
29+ func (m * mockESClientForConfigure ) DeleteSnapshotRepository (_ string ) error {
30+ if m .deleteRepoErr != nil {
31+ return m .deleteRepoErr
32+ }
33+ m .repoDeleted = true
34+ return nil
35+ }
36+
2737func (m * mockESClientForConfigure ) ConfigureSnapshotRepository (name , bucket , endpoint , basePath , accessKey , secretKey string ) error {
2838 if m .configureRepoErr != nil {
2939 return m .configureRepoErr
@@ -260,32 +270,51 @@ minio:
260270}
261271
262272// TestMockESClientForConfigure demonstrates mock usage for configure
273+ //
274+ //nolint:funlen // Table-driven test
263275func TestMockESClientForConfigure (t * testing.T ) {
264276 tests := []struct {
265277 name string
278+ deleteRepoErr error
266279 configureRepoErr error
267280 configureSLMErr error
281+ expectDeleteOK bool
268282 expectRepoOK bool
269283 expectSLMOK bool
270284 }{
271285 {
272286 name : "successful configuration" ,
287+ deleteRepoErr : nil ,
273288 configureRepoErr : nil ,
274289 configureSLMErr : nil ,
290+ expectDeleteOK : true ,
275291 expectRepoOK : true ,
276292 expectSLMOK : true ,
277293 },
294+ {
295+ name : "repository deletion fails" ,
296+ deleteRepoErr : fmt .Errorf ("repository deletion failed" ),
297+ configureRepoErr : nil ,
298+ configureSLMErr : nil ,
299+ expectDeleteOK : false ,
300+ expectRepoOK : false ,
301+ expectSLMOK : false ,
302+ },
278303 {
279304 name : "repository configuration fails" ,
305+ deleteRepoErr : nil ,
280306 configureRepoErr : fmt .Errorf ("repository creation failed" ),
281307 configureSLMErr : nil ,
308+ expectDeleteOK : true ,
282309 expectRepoOK : false ,
283310 expectSLMOK : false ,
284311 },
285312 {
286313 name : "SLM configuration fails" ,
314+ deleteRepoErr : nil ,
287315 configureRepoErr : nil ,
288316 configureSLMErr : fmt .Errorf ("SLM policy creation failed" ),
317+ expectDeleteOK : true ,
289318 expectRepoOK : true ,
290319 expectSLMOK : false ,
291320 },
@@ -294,12 +323,24 @@ func TestMockESClientForConfigure(t *testing.T) {
294323 for _ , tt := range tests {
295324 t .Run (tt .name , func (t * testing.T ) {
296325 mockClient := & mockESClientForConfigure {
326+ deleteRepoErr : tt .deleteRepoErr ,
297327 configureRepoErr : tt .configureRepoErr ,
298328 configureSLMErr : tt .configureSLMErr ,
299329 }
300330
331+ // Delete repository
332+ err := mockClient .DeleteSnapshotRepository ("backup-repo" )
333+
334+ if tt .expectDeleteOK {
335+ assert .NoError (t , err )
336+ assert .True (t , mockClient .repoDeleted )
337+ } else {
338+ assert .Error (t , err )
339+ return // Don't test configure if delete failed
340+ }
341+
301342 // Configure repository
302- err : = mockClient .ConfigureSnapshotRepository (
343+ err = mockClient .ConfigureSnapshotRepository (
303344 "backup-repo" ,
304345 "backup-bucket" ,
305346 "minio:9000" ,
0 commit comments