Skip to content

Commit 472d881

Browse files
committed
cleanup testing by using the new method spy code
1 parent e6565a5 commit 472d881

8 files changed

Lines changed: 144 additions & 189 deletions
Lines changed: 17 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package backup_test
22

33
import (
4-
"context"
54
"encoding/json"
65
"testing"
76

@@ -16,11 +15,9 @@ import (
1615

1716
func TestRestoreList_TableOutput(t *testing.T) {
1817
env := testutil.NewTestEnv(t)
19-
t.Cleanup(env.Cleanup)
2018

21-
env.BackupServer.ListBackupRestoresFunc = func(_ context.Context, req *backupv1.ListBackupRestoresRequest) (*backupv1.ListBackupRestoresResponse, error) {
22-
assert.Equal(t, "test-account-id", req.GetAccountId())
23-
return &backupv1.ListBackupRestoresResponse{
19+
env.BackupServer.ListBackupRestoresCalls.Returns(
20+
&backupv1.ListBackupRestoresResponse{
2421
Items: []*backupv1.BackupRestore{
2522
{
2623
Id: "restore-1",
@@ -30,11 +27,14 @@ func TestRestoreList_TableOutput(t *testing.T) {
3027
CreatedAt: timestamppb.Now(),
3128
},
3229
},
33-
}, nil
34-
}
30+
},
31+
nil,
32+
)
3533

3634
stdout, _, err := testutil.Exec(t, env, "backup", "restore", "list")
3735
require.NoError(t, err)
36+
req, _ := env.BackupServer.ListBackupRestoresCalls.Last()
37+
assert.Equal(t, "test-account-id", req.GetAccountId())
3838
assert.Contains(t, stdout, "ID")
3939
assert.Contains(t, stdout, "BACKUP")
4040
assert.Contains(t, stdout, "CLUSTER")
@@ -46,15 +46,15 @@ func TestRestoreList_TableOutput(t *testing.T) {
4646

4747
func TestRestoreList_JSONOutput(t *testing.T) {
4848
env := testutil.NewTestEnv(t)
49-
t.Cleanup(env.Cleanup)
5049

51-
env.BackupServer.ListBackupRestoresFunc = func(_ context.Context, _ *backupv1.ListBackupRestoresRequest) (*backupv1.ListBackupRestoresResponse, error) {
52-
return &backupv1.ListBackupRestoresResponse{
50+
env.BackupServer.ListBackupRestoresCalls.Returns(
51+
&backupv1.ListBackupRestoresResponse{
5352
Items: []*backupv1.BackupRestore{
5453
{Id: "restore-json", BackupId: "backup-123"},
5554
},
56-
}, nil
57-
}
55+
},
56+
nil,
57+
)
5858

5959
stdout, _, err := testutil.Exec(t, env, "backup", "restore", "list", "--json")
6060
require.NoError(t, err)
@@ -73,11 +73,8 @@ func TestRestoreList_JSONOutput(t *testing.T) {
7373

7474
func TestRestoreList_EmptyResponse(t *testing.T) {
7575
env := testutil.NewTestEnv(t)
76-
t.Cleanup(env.Cleanup)
7776

78-
env.BackupServer.ListBackupRestoresFunc = func(_ context.Context, _ *backupv1.ListBackupRestoresRequest) (*backupv1.ListBackupRestoresResponse, error) {
79-
return &backupv1.ListBackupRestoresResponse{}, nil
80-
}
77+
env.BackupServer.ListBackupRestoresCalls.Returns(&backupv1.ListBackupRestoresResponse{}, nil)
8178

8279
stdout, _, err := testutil.Exec(t, env, "backup", "restore", "list")
8380
require.NoError(t, err)
@@ -87,27 +84,20 @@ func TestRestoreList_EmptyResponse(t *testing.T) {
8784

8885
func TestRestoreList_APIError(t *testing.T) {
8986
env := testutil.NewTestEnv(t)
90-
t.Cleanup(env.Cleanup)
9187

92-
env.BackupServer.ListBackupRestoresFunc = func(_ context.Context, _ *backupv1.ListBackupRestoresRequest) (*backupv1.ListBackupRestoresResponse, error) {
93-
return nil, assert.AnError
94-
}
88+
env.BackupServer.ListBackupRestoresCalls.Returns(nil, assert.AnError)
9589

9690
_, _, err := testutil.Exec(t, env, "backup", "restore", "list")
9791
require.Error(t, err)
9892
}
9993

10094
func TestRestoreList_ClusterIDFilter(t *testing.T) {
10195
env := testutil.NewTestEnv(t)
102-
t.Cleanup(env.Cleanup)
10396

104-
var capturedClusterID string
105-
env.BackupServer.ListBackupRestoresFunc = func(_ context.Context, req *backupv1.ListBackupRestoresRequest) (*backupv1.ListBackupRestoresResponse, error) {
106-
capturedClusterID = req.GetClusterId()
107-
return &backupv1.ListBackupRestoresResponse{}, nil
108-
}
97+
env.BackupServer.ListBackupRestoresCalls.Returns(&backupv1.ListBackupRestoresResponse{}, nil)
10998

11099
_, _, err := testutil.Exec(t, env, "backup", "restore", "list", "--cluster-id=my-cluster")
111100
require.NoError(t, err)
112-
assert.Equal(t, "my-cluster", capturedClusterID)
101+
req, _ := env.BackupServer.ListBackupRestoresCalls.Last()
102+
assert.Equal(t, "my-cluster", req.GetClusterId())
113103
}

internal/cmd/backup/restore_trigger_test.go

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package backup_test
22

33
import (
4-
"context"
54
"testing"
65

76
"github.com/stretchr/testify/assert"
@@ -14,42 +13,31 @@ import (
1413

1514
func TestRestoreTrigger_WithForce(t *testing.T) {
1615
env := testutil.NewTestEnv(t)
17-
t.Cleanup(env.Cleanup)
1816

19-
var capturedBackupID string
20-
env.BackupServer.RestoreBackupFunc = func(_ context.Context, req *backupv1.RestoreBackupRequest) (*backupv1.RestoreBackupResponse, error) {
21-
assert.Equal(t, "test-account-id", req.GetAccountId())
22-
capturedBackupID = req.GetBackupId()
23-
return &backupv1.RestoreBackupResponse{}, nil
24-
}
17+
env.BackupServer.RestoreBackupCalls.Returns(&backupv1.RestoreBackupResponse{}, nil)
2518

2619
stdout, _, err := testutil.Exec(t, env, "backup", "restore", "trigger", "backup-abc", "--force")
2720
require.NoError(t, err)
28-
assert.Equal(t, "backup-abc", capturedBackupID)
21+
req, _ := env.BackupServer.RestoreBackupCalls.Last()
22+
assert.Equal(t, "test-account-id", req.GetAccountId())
23+
assert.Equal(t, "backup-abc", req.GetBackupId())
2924
assert.Contains(t, stdout, "Restore of backup backup-abc started.")
3025
assert.Contains(t, stdout, "Run 'qcloud backup restore list' to track progress.")
3126
}
3227

3328
func TestRestoreTrigger_Aborted(t *testing.T) {
3429
env := testutil.NewTestEnv(t)
35-
t.Cleanup(env.Cleanup)
36-
37-
env.BackupServer.RestoreBackupFunc = func(_ context.Context, _ *backupv1.RestoreBackupRequest) (*backupv1.RestoreBackupResponse, error) {
38-
panic("RestoreBackup must not be called when aborted")
39-
}
4030

4131
stdout, _, err := testutil.Exec(t, env, "backup", "restore", "trigger", "backup-abc")
4232
require.NoError(t, err)
4333
assert.Contains(t, stdout, "Aborted.")
34+
assert.Equal(t, 0, env.BackupServer.RestoreBackupCalls.Count())
4435
}
4536

4637
func TestRestoreTrigger_APIError(t *testing.T) {
4738
env := testutil.NewTestEnv(t)
48-
t.Cleanup(env.Cleanup)
4939

50-
env.BackupServer.RestoreBackupFunc = func(_ context.Context, _ *backupv1.RestoreBackupRequest) (*backupv1.RestoreBackupResponse, error) {
51-
return nil, assert.AnError
52-
}
40+
env.BackupServer.RestoreBackupCalls.Returns(nil, assert.AnError)
5341

5442
_, _, err := testutil.Exec(t, env, "backup", "restore", "trigger", "backup-abc", "--force")
5543
require.Error(t, err)

internal/cmd/backup/schedule_create_test.go

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package backup_test
22

33
import (
4-
"context"
54
"encoding/json"
65
"testing"
76

@@ -15,53 +14,55 @@ import (
1514

1615
func TestScheduleCreate_Success(t *testing.T) {
1716
env := testutil.NewTestEnv(t)
18-
t.Cleanup(env.Cleanup)
1917

20-
env.BackupServer.CreateBackupScheduleFunc = func(_ context.Context, req *backupv1.CreateBackupScheduleRequest) (*backupv1.CreateBackupScheduleResponse, error) {
21-
assert.Equal(t, "test-account-id", req.GetBackupSchedule().GetAccountId())
22-
assert.Equal(t, "cluster-abc", req.GetBackupSchedule().GetClusterId())
23-
assert.Equal(t, "0 2 * * *", req.GetBackupSchedule().GetSchedule())
24-
return &backupv1.CreateBackupScheduleResponse{
18+
env.BackupServer.CreateBackupScheduleCalls.Returns(
19+
&backupv1.CreateBackupScheduleResponse{
2520
BackupSchedule: &backupv1.BackupSchedule{Id: "schedule-new", ClusterId: "cluster-abc"},
26-
}, nil
27-
}
21+
},
22+
nil,
23+
)
2824

2925
stdout, _, err := testutil.Exec(t, env, "backup", "schedule", "create",
3026
"--cluster-id=cluster-abc", "--schedule=0 2 * * *", "--retention-days=30")
3127
require.NoError(t, err)
28+
req, _ := env.BackupServer.CreateBackupScheduleCalls.Last()
29+
assert.Equal(t, "test-account-id", req.GetBackupSchedule().GetAccountId())
30+
assert.Equal(t, "cluster-abc", req.GetBackupSchedule().GetClusterId())
31+
assert.Equal(t, "0 2 * * *", req.GetBackupSchedule().GetSchedule())
3232
assert.Contains(t, stdout, "schedule-new")
3333
assert.Contains(t, stdout, "cluster-abc")
3434
}
3535

3636
func TestScheduleCreate_WithRetention(t *testing.T) {
3737
env := testutil.NewTestEnv(t)
38-
t.Cleanup(env.Cleanup)
39-
40-
var capturedRetentionDays int64
41-
env.BackupServer.CreateBackupScheduleFunc = func(_ context.Context, req *backupv1.CreateBackupScheduleRequest) (*backupv1.CreateBackupScheduleResponse, error) {
42-
if req.GetBackupSchedule().GetRetentionPeriod() != nil {
43-
capturedRetentionDays = int64(req.GetBackupSchedule().GetRetentionPeriod().AsDuration().Hours()) / 24
44-
}
45-
return &backupv1.CreateBackupScheduleResponse{
38+
39+
env.BackupServer.CreateBackupScheduleCalls.Returns(
40+
&backupv1.CreateBackupScheduleResponse{
4641
BackupSchedule: &backupv1.BackupSchedule{Id: "schedule-ret", ClusterId: "cluster-abc"},
47-
}, nil
48-
}
42+
},
43+
nil,
44+
)
4945

5046
_, _, err := testutil.Exec(t, env, "backup", "schedule", "create",
5147
"--cluster-id=cluster-abc", "--schedule=0 2 * * *", "--retention-days=30")
5248
require.NoError(t, err)
53-
assert.Equal(t, int64(30), capturedRetentionDays)
49+
req, _ := env.BackupServer.CreateBackupScheduleCalls.Last()
50+
var retentionDays int64
51+
if req.GetBackupSchedule().GetRetentionPeriod() != nil {
52+
retentionDays = int64(req.GetBackupSchedule().GetRetentionPeriod().AsDuration().Hours()) / 24
53+
}
54+
assert.Equal(t, int64(30), retentionDays)
5455
}
5556

5657
func TestScheduleCreate_JSONOutput(t *testing.T) {
5758
env := testutil.NewTestEnv(t)
58-
t.Cleanup(env.Cleanup)
5959

60-
env.BackupServer.CreateBackupScheduleFunc = func(_ context.Context, _ *backupv1.CreateBackupScheduleRequest) (*backupv1.CreateBackupScheduleResponse, error) {
61-
return &backupv1.CreateBackupScheduleResponse{
60+
env.BackupServer.CreateBackupScheduleCalls.Returns(
61+
&backupv1.CreateBackupScheduleResponse{
6262
BackupSchedule: &backupv1.BackupSchedule{Id: "schedule-json", Schedule: "0 5 * * *"},
63-
}, nil
64-
}
63+
},
64+
nil,
65+
)
6566

6667
stdout, _, err := testutil.Exec(t, env, "backup", "schedule", "create",
6768
"--cluster-id=cluster-abc", "--schedule=0 5 * * *", "--retention-days=30", "--json")
@@ -77,7 +78,6 @@ func TestScheduleCreate_JSONOutput(t *testing.T) {
7778

7879
func TestScheduleCreate_InvalidRetention(t *testing.T) {
7980
env := testutil.NewTestEnv(t)
80-
t.Cleanup(env.Cleanup)
8181

8282
_, _, err := testutil.Exec(t, env, "backup", "schedule", "create",
8383
"--cluster-id=cluster-abc", "--schedule=0 2 * * *", "--retention-days=0")
@@ -86,15 +86,13 @@ func TestScheduleCreate_InvalidRetention(t *testing.T) {
8686

8787
func TestScheduleCreate_MissingFlags(t *testing.T) {
8888
env := testutil.NewTestEnv(t)
89-
t.Cleanup(env.Cleanup)
9089

9190
_, _, err := testutil.Exec(t, env, "backup", "schedule", "create", "--cluster-id=cluster-abc")
9291
require.Error(t, err)
9392
}
9493

9594
func TestScheduleCreate_MissingClusterID(t *testing.T) {
9695
env := testutil.NewTestEnv(t)
97-
t.Cleanup(env.Cleanup)
9896

9997
_, _, err := testutil.Exec(t, env, "backup", "schedule", "create",
10098
"--schedule=0 2 * * *", "--retention-days=30")
@@ -103,7 +101,6 @@ func TestScheduleCreate_MissingClusterID(t *testing.T) {
103101

104102
func TestScheduleCreate_MissingRetentionDays(t *testing.T) {
105103
env := testutil.NewTestEnv(t)
106-
t.Cleanup(env.Cleanup)
107104

108105
_, _, err := testutil.Exec(t, env, "backup", "schedule", "create",
109106
"--cluster-id=cluster-abc", "--schedule=0 2 * * *")

internal/cmd/backup/schedule_delete_test.go

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package backup_test
22

33
import (
4-
"context"
54
"testing"
65

76
"github.com/stretchr/testify/assert"
@@ -14,47 +13,34 @@ import (
1413

1514
func TestScheduleDelete_WithForce(t *testing.T) {
1615
env := testutil.NewTestEnv(t)
17-
t.Cleanup(env.Cleanup)
1816

19-
var capturedScheduleID string
20-
var capturedDeleteBackups bool
21-
env.BackupServer.DeleteBackupScheduleFunc = func(_ context.Context, req *backupv1.DeleteBackupScheduleRequest) (*backupv1.DeleteBackupScheduleResponse, error) {
22-
assert.Equal(t, "test-account-id", req.GetAccountId())
23-
capturedScheduleID = req.GetBackupScheduleId()
24-
capturedDeleteBackups = req.GetDeleteBackups()
25-
return &backupv1.DeleteBackupScheduleResponse{}, nil
26-
}
17+
env.BackupServer.DeleteBackupScheduleCalls.Returns(&backupv1.DeleteBackupScheduleResponse{}, nil)
2718

2819
stdout, _, err := testutil.Exec(t, env, "backup", "schedule", "delete", "schedule-abc", "--force")
2920
require.NoError(t, err)
30-
assert.Equal(t, "schedule-abc", capturedScheduleID)
31-
assert.False(t, capturedDeleteBackups)
21+
req, _ := env.BackupServer.DeleteBackupScheduleCalls.Last()
22+
assert.Equal(t, "test-account-id", req.GetAccountId())
23+
assert.Equal(t, "schedule-abc", req.GetBackupScheduleId())
24+
assert.False(t, req.GetDeleteBackups())
3225
assert.Contains(t, stdout, "schedule-abc")
3326
assert.Contains(t, stdout, "deleted")
3427
}
3528

3629
func TestScheduleDelete_WithDeleteBackups(t *testing.T) {
3730
env := testutil.NewTestEnv(t)
38-
t.Cleanup(env.Cleanup)
3931

40-
var capturedDeleteBackups bool
41-
env.BackupServer.DeleteBackupScheduleFunc = func(_ context.Context, req *backupv1.DeleteBackupScheduleRequest) (*backupv1.DeleteBackupScheduleResponse, error) {
42-
capturedDeleteBackups = req.GetDeleteBackups()
43-
return &backupv1.DeleteBackupScheduleResponse{}, nil
44-
}
32+
env.BackupServer.DeleteBackupScheduleCalls.Returns(&backupv1.DeleteBackupScheduleResponse{}, nil)
4533

4634
_, _, err := testutil.Exec(t, env, "backup", "schedule", "delete", "schedule-abc", "--force", "--delete-backups")
4735
require.NoError(t, err)
48-
assert.True(t, capturedDeleteBackups)
36+
req, _ := env.BackupServer.DeleteBackupScheduleCalls.Last()
37+
assert.True(t, req.GetDeleteBackups())
4938
}
5039

5140
func TestScheduleDelete_APIError(t *testing.T) {
5241
env := testutil.NewTestEnv(t)
53-
t.Cleanup(env.Cleanup)
5442

55-
env.BackupServer.DeleteBackupScheduleFunc = func(_ context.Context, _ *backupv1.DeleteBackupScheduleRequest) (*backupv1.DeleteBackupScheduleResponse, error) {
56-
return nil, assert.AnError
57-
}
43+
env.BackupServer.DeleteBackupScheduleCalls.Returns(nil, assert.AnError)
5844

5945
_, _, err := testutil.Exec(t, env, "backup", "schedule", "delete", "schedule-abc", "--force")
6046
require.Error(t, err)

0 commit comments

Comments
 (0)