@@ -116,43 +116,40 @@ func TestDrop(t *testing.T, d database.Driver) {
116
116
}
117
117
118
118
func TestSetVersion (t * testing.T , d database.Driver ) {
119
- if err := d .SetVersion (1 , true ); err != nil {
120
- t .Fatal (err )
121
- }
122
-
123
- // call again
124
- if err := d .SetVersion (1 , true ); err != nil {
125
- t .Fatal (err )
126
- }
127
-
128
- v , dirty , err := d .Version ()
129
- if err != nil {
130
- t .Fatal (err )
131
- }
132
- if ! dirty {
133
- t .Fatal ("expected dirty" )
134
- }
135
- if v != 1 {
136
- t .Fatal ("expected version to be 1" )
137
- }
138
-
139
- if err := d .SetVersion (2 , false ); err != nil {
140
- t .Fatal (err )
141
- }
142
-
143
- // call again
144
- if err := d .SetVersion (2 , false ); err != nil {
145
- t .Fatal (err )
146
- }
147
-
148
- v , dirty , err = d .Version ()
149
- if err != nil {
150
- t .Fatal (err )
151
- }
152
- if dirty {
153
- t .Fatal ("expected not dirty" )
154
- }
155
- if v != 2 {
156
- t .Fatal ("expected version to be 2" )
119
+ // nolint:maligned
120
+ testCases := []struct {
121
+ name string
122
+ version int
123
+ dirty bool
124
+ expectedErr error
125
+ expectedReadErr error
126
+ expectedVersion int
127
+ expectedDirty bool
128
+ }{
129
+ {name : "set 1 dirty" , version : 1 , dirty : true , expectedErr : nil , expectedReadErr : nil , expectedVersion : 1 , expectedDirty : true },
130
+ {name : "re-set 1 dirty" , version : 1 , dirty : true , expectedErr : nil , expectedReadErr : nil , expectedVersion : 1 , expectedDirty : true },
131
+ {name : "set 2 clean" , version : 2 , dirty : false , expectedErr : nil , expectedReadErr : nil , expectedVersion : 2 , expectedDirty : false },
132
+ {name : "re-set 2 clean" , version : 2 , dirty : false , expectedErr : nil , expectedReadErr : nil , expectedVersion : 2 , expectedDirty : false },
133
+ {name : "last migration dirty" , version : database .NilVersion , dirty : true , expectedErr : nil , expectedReadErr : nil , expectedVersion : database .NilVersion , expectedDirty : true },
134
+ {name : "last migration clean" , version : database .NilVersion , dirty : false , expectedErr : nil , expectedReadErr : nil , expectedVersion : database .NilVersion , expectedDirty : false },
135
+ }
136
+
137
+ for _ , tc := range testCases {
138
+ t .Run (tc .name , func (t * testing.T ) {
139
+ err := d .SetVersion (tc .version , tc .dirty )
140
+ if err != tc .expectedErr {
141
+ t .Fatal ("Got unexpected error:" , err , "!=" , tc .expectedErr )
142
+ }
143
+ v , dirty , readErr := d .Version ()
144
+ if readErr != tc .expectedReadErr {
145
+ t .Fatal ("Got unexpected error:" , readErr , "!=" , tc .expectedReadErr )
146
+ }
147
+ if v != tc .expectedVersion {
148
+ t .Error ("Got unexpected version:" , v , "!=" , tc .expectedVersion )
149
+ }
150
+ if dirty != tc .expectedDirty {
151
+ t .Error ("Got unexpected dirty value:" , dirty , "!=" , tc .dirty )
152
+ }
153
+ })
157
154
}
158
155
}
0 commit comments