@@ -13,86 +13,78 @@ import (
1313)
1414
1515func 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}
0 commit comments