Skip to content

Commit 19b3e6d

Browse files
committed
fix
1 parent aaba115 commit 19b3e6d

File tree

3 files changed

+75
-83
lines changed

3 files changed

+75
-83
lines changed

apptrust/commands/version/rollback_app_version_cmd_test.go

Lines changed: 71 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -13,86 +13,78 @@ import (
1313
)
1414

1515
func TestRollbackAppVersionCommand_Run(t *testing.T) {
16-
ctrl := gomock.NewController(t)
17-
defer ctrl.Finish()
18-
19-
serverDetails := &config.ServerDetails{Url: "https://example.com"}
20-
applicationKey := "video-encoder"
21-
version := "1.5.0"
22-
requestPayload := &model.RollbackAppVersionRequest{
23-
FromStage: "qa",
24-
}
25-
26-
mockVersionService := mockversions.NewMockVersionService(ctrl)
27-
mockVersionService.EXPECT().RollbackAppVersion(gomock.Any(), applicationKey, version, requestPayload, false).
28-
Return(nil).Times(1)
29-
30-
cmd := &rollbackAppVersionCommand{
31-
versionService: mockVersionService,
32-
serverDetails: serverDetails,
33-
applicationKey: applicationKey,
34-
version: version,
35-
requestPayload: requestPayload,
36-
}
37-
38-
err := cmd.Run()
39-
assert.NoError(t, err)
40-
}
41-
42-
func TestRollbackAppVersionCommand_Run_WithSync(t *testing.T) {
43-
ctrl := gomock.NewController(t)
44-
defer ctrl.Finish()
45-
46-
applicationKey := "test-app"
47-
version := "1.0.0"
48-
serverDetails := &config.ServerDetails{Url: "https://example.com"}
49-
requestPayload := &model.RollbackAppVersionRequest{
50-
FromStage: "qa",
16+
tests := []struct {
17+
name string
18+
applicationKey string
19+
version string
20+
fromStage string
21+
sync bool
22+
mockError error
23+
expectedError bool
24+
}{
25+
{
26+
name: "successful rollback with sync=false",
27+
applicationKey: "video-encoder",
28+
version: "1.5.0",
29+
fromStage: "qa",
30+
sync: false,
31+
mockError: nil,
32+
expectedError: false,
33+
},
34+
{
35+
name: "successful rollback with sync=true",
36+
applicationKey: "test-app",
37+
version: "1.0.0",
38+
fromStage: "qa",
39+
sync: true,
40+
mockError: nil,
41+
expectedError: false,
42+
},
43+
{
44+
name: "failed rollback",
45+
applicationKey: "video-encoder",
46+
version: "1.5.0",
47+
fromStage: "qa",
48+
sync: false,
49+
mockError: errors.New("rollback service error occurred"),
50+
expectedError: true,
51+
},
5152
}
5253

53-
mockVersionService := mockversions.NewMockVersionService(ctrl)
54-
mockVersionService.EXPECT().RollbackAppVersion(gomock.Any(), applicationKey, version, requestPayload, true).
55-
Return(nil).Times(1)
56-
57-
cmd := &rollbackAppVersionCommand{
58-
versionService: mockVersionService,
59-
serverDetails: serverDetails,
60-
applicationKey: applicationKey,
61-
version: version,
62-
requestPayload: requestPayload,
63-
fromStage: "qa",
64-
sync: true,
54+
for _, tt := range tests {
55+
t.Run(tt.name, func(t *testing.T) {
56+
ctrl := gomock.NewController(t)
57+
defer ctrl.Finish()
58+
59+
serverDetails := &config.ServerDetails{Url: "https://example.com"}
60+
requestPayload := &model.RollbackAppVersionRequest{
61+
FromStage: tt.fromStage,
62+
}
63+
64+
mockVersionService := mockversions.NewMockVersionService(ctrl)
65+
mockVersionService.EXPECT().RollbackAppVersion(gomock.Any(), tt.applicationKey, tt.version, requestPayload, tt.sync).
66+
Return(tt.mockError).Times(1)
67+
68+
cmd := &rollbackAppVersionCommand{
69+
versionService: mockVersionService,
70+
serverDetails: serverDetails,
71+
applicationKey: tt.applicationKey,
72+
version: tt.version,
73+
requestPayload: requestPayload,
74+
fromStage: tt.fromStage,
75+
sync: tt.sync,
76+
}
77+
78+
err := cmd.Run()
79+
80+
if tt.expectedError {
81+
assert.Error(t, err)
82+
if tt.mockError != nil {
83+
assert.Contains(t, err.Error(), tt.mockError.Error())
84+
}
85+
} else {
86+
assert.NoError(t, err)
87+
}
88+
})
6589
}
66-
67-
err := cmd.Run()
68-
assert.NoError(t, err)
69-
}
70-
71-
func TestRollbackAppVersionCommand_Run_Error(t *testing.T) {
72-
ctrl := gomock.NewController(t)
73-
defer ctrl.Finish()
74-
75-
serverDetails := &config.ServerDetails{Url: "https://example.com"}
76-
applicationKey := "video-encoder"
77-
version := "1.5.0"
78-
requestPayload := &model.RollbackAppVersionRequest{
79-
FromStage: "qa",
80-
}
81-
expectedError := errors.New("rollback service error occurred")
82-
83-
mockVersionService := mockversions.NewMockVersionService(ctrl)
84-
mockVersionService.EXPECT().RollbackAppVersion(gomock.Any(), applicationKey, version, requestPayload, false).
85-
Return(expectedError).Times(1)
86-
87-
cmd := &rollbackAppVersionCommand{
88-
versionService: mockVersionService,
89-
serverDetails: serverDetails,
90-
applicationKey: applicationKey,
91-
version: version,
92-
requestPayload: requestPayload,
93-
}
94-
95-
err := cmd.Run()
96-
assert.Error(t, err)
97-
assert.Contains(t, err.Error(), "rollback service error occurred")
9890
}

apptrust/service/versions/version_service.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,9 @@ func (vs *versionService) RollbackAppVersion(ctx service.Context, applicationKey
8484
}
8585

8686
// Validate status code based on sync mode
87-
expectedStatusCode := http.StatusAccepted // async mode expects 202
87+
expectedStatusCode := http.StatusAccepted
8888
if sync {
89-
expectedStatusCode = http.StatusOK // sync mode expects 200
89+
expectedStatusCode = http.StatusOK
9090
}
9191

9292
if response.StatusCode != expectedStatusCode {

apptrust/service/versions/version_service_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ func TestRollbackAppVersion(t *testing.T) {
467467
FromStage: "qa",
468468
},
469469
sync: true,
470-
expectedStatus: http.StatusAccepted, // Wrong status for sync=true
470+
expectedStatus: http.StatusAccepted,
471471
expectedError: true,
472472
},
473473
{
@@ -478,7 +478,7 @@ func TestRollbackAppVersion(t *testing.T) {
478478
FromStage: "prod",
479479
},
480480
sync: false,
481-
expectedStatus: http.StatusOK, // Wrong status for sync=false
481+
expectedStatus: http.StatusOK,
482482
expectedError: true,
483483
},
484484
}

0 commit comments

Comments
 (0)