@@ -149,3 +149,178 @@ func TestRemoveCIDRsContainingIPs(t *testing.T) {
149
149
})
150
150
}
151
151
}
152
+
153
+ func Test_newer (t * testing.T ) {
154
+ type args struct {
155
+ clientVersionStr string
156
+ clientImgStr string
157
+ serverImgStr string
158
+ }
159
+ tests := []struct {
160
+ name string
161
+ args args
162
+ want bool
163
+ wantErr bool
164
+ }{
165
+ // client version: v1.2.1
166
+ // client image: ghcr.io/kubenetworks/kubevpn:v1.2.1
167
+ // server image: naison/kubevpn:v1.0.0
168
+ {
169
+ name : "Valid case - client(ghcr.io/kubenetworks/kubevpn:v1.2.1) newer than server(naison/kubevpn:v1.0.0)" ,
170
+ args : args {
171
+ clientVersionStr : "v1.2.1" ,
172
+ clientImgStr : "ghcr.io/kubenetworks/kubevpn:v1.2.1" ,
173
+ serverImgStr : "naison/kubevpn:v1.0.0" ,
174
+ },
175
+ want : true ,
176
+ wantErr : false ,
177
+ },
178
+ // client version: v1.2.1
179
+ // client image: ghcr.io/kubenetworks/kubevpn:v1.2.1
180
+ // server image: docker.io/naison/kubevpn:v1.0.0
181
+ {
182
+ name : "Valid case - client(ghcr.io/kubenetworks/kubevpn:v1.2.1) newer than server(docker.io/naison/kubevpn:v1.0.0)" ,
183
+ args : args {
184
+ clientVersionStr : "v1.2.1" ,
185
+ clientImgStr : "ghcr.io/kubenetworks/kubevpn:v1.2.1" ,
186
+ serverImgStr : "docker.io/naison/kubevpn:v1.0.0" ,
187
+ },
188
+ want : true ,
189
+ wantErr : false ,
190
+ },
191
+ // client version: v1.2.1
192
+ // client image: ghcr.io/kubenetworks/kubevpn:v1.2.1
193
+ // server image: naison/kubevpn:v1.2.1
194
+ {
195
+ name : "Valid case - client(ghcr.io/kubenetworks/kubevpn:v1.2.1) same as server(naison/kubevpn:v1.2.1)" ,
196
+ args : args {
197
+ clientVersionStr : "v1.2.1" ,
198
+ clientImgStr : "ghcr.io/kubenetworks/kubevpn:v1.2.1" ,
199
+ serverImgStr : "naison/kubevpn:v1.2.1" ,
200
+ },
201
+ want : false ,
202
+ wantErr : false ,
203
+ },
204
+ // client version: v1.2.1
205
+ // client image: ghcr.io/kubenetworks/kubevpn:v1.2.1
206
+ // server image: docker.io/naison/kubevpn:v1.2.1
207
+ {
208
+ name : "Valid case - client(ghcr.io/kubenetworks/kubevpn:v1.2.1) same as server(docker.io/naison/kubevpn:v1.2.1)" ,
209
+ args : args {
210
+ clientVersionStr : "v1.2.1" ,
211
+ clientImgStr : "ghcr.io/kubenetworks/kubevpn:v1.2.1" ,
212
+ serverImgStr : "docker.io/naison/kubevpn:v1.2.1" ,
213
+ },
214
+ want : false ,
215
+ wantErr : false ,
216
+ },
217
+ // client version: v1.2.1
218
+ // client image: ghcr.io/kubenetworks/kubevpn:v1.2.1
219
+ // server image: docker.io/naison/kubevpn:v1.3.1
220
+ {
221
+ name : "Valid case - client(ghcr.io/kubenetworks/kubevpn:v1.2.1) older as server(docker.io/naison/kubevpn:v1.3.1)" ,
222
+ args : args {
223
+ clientVersionStr : "v1.2.1" ,
224
+ clientImgStr : "ghcr.io/kubenetworks/kubevpn:v1.2.1" ,
225
+ serverImgStr : "docker.io/naison/kubevpn:v1.3.1" ,
226
+ },
227
+ want : false ,
228
+ wantErr : false ,
229
+ },
230
+ // client version: v1.3.1
231
+ // client image: ghcr.io/kubenetworks/kubevpn:v1.2.1 (not same as client version, --image=xxx)
232
+ // server image: ghcr.io/kubenetworks/kubevpn:v1.2.1
233
+ {
234
+ name : "Valid case - client cli version(v1.3.1) not same as client image(ghcr.io/kubenetworks/kubevpn:v1.2.1)" ,
235
+ args : args {
236
+ clientVersionStr : "v1.3.1" ,
237
+ clientImgStr : "ghcr.io/kubenetworks/kubevpn:v1.2.1" ,
238
+ serverImgStr : "ghcr.io/kubenetworks/kubevpn:v1.2.1" ,
239
+ },
240
+ want : false ,
241
+ wantErr : false ,
242
+ },
243
+ // client version: v1.2.1
244
+ // client image: ghcr.io/kubenetworks/kubevpn:v1.2.1
245
+ // server image: ghcr.io/kubenetworks/kubevpn:v1.0.1
246
+ {
247
+ name : "Valid case - client(ghcr.io/kubenetworks/kubevpn:v1.2.1) newer than server(ghcr.io/kubenetworks/kubevpn:v1.0.1)" ,
248
+ args : args {
249
+ clientVersionStr : "v1.2.1" ,
250
+ clientImgStr : "ghcr.io/kubenetworks/kubevpn:v1.2.1" ,
251
+ serverImgStr : "ghcr.io/kubenetworks/kubevpn:v1.0.1" ,
252
+ },
253
+ want : true ,
254
+ wantErr : false ,
255
+ },
256
+ // client version: v1.2.1
257
+ // client image: ghcr.io/kubenetworks/kubevpn:v1.2.1
258
+ // server image: ghcr.io/kubenetworks/kubevpn:v1.2.1
259
+ {
260
+ name : "Valid case - client(ghcr.io/kubenetworks/kubevpn:v1.2.1) same as server(ghcr.io/kubenetworks/kubevpn:v1.2.1)" ,
261
+ args : args {
262
+ clientVersionStr : "v1.2.1" ,
263
+ clientImgStr : "ghcr.io/kubenetworks/kubevpn:v1.2.1" ,
264
+ serverImgStr : "ghcr.io/kubenetworks/kubevpn:v1.2.1" ,
265
+ },
266
+ want : false ,
267
+ wantErr : false ,
268
+ },
269
+ // client version: v1.2.1
270
+ // client image: ghcr.io/kubenetworks/kubevpn:v1.2.1
271
+ // server image: ghcr.io/kubenetworks/kubevpn:v1.3.1
272
+ {
273
+ name : "Valid case - client(ghcr.io/kubenetworks/kubevpn:v1.2.1) older as server(ghcr.io/kubenetworks/kubevpn:v1.3.1)" ,
274
+ args : args {
275
+ clientVersionStr : "v1.2.1" ,
276
+ clientImgStr : "ghcr.io/kubenetworks/kubevpn:v1.2.1" ,
277
+ serverImgStr : "ghcr.io/kubenetworks/kubevpn:v1.3.1" ,
278
+ },
279
+ want : false ,
280
+ wantErr : false ,
281
+ },
282
+
283
+ // custom server image registry, but client image is not same as client version, does not upgrade
284
+ // client version: v1.2.1
285
+ // client image: ghcr.io/kubenetworks/kubevpn:v1.2.1
286
+ // server image: mykubevpn.io/kubenetworks/kubevpn:v1.1.1
287
+ {
288
+ name : "custom server image registry, but client image is not same as client version, does not upgrade" ,
289
+ args : args {
290
+ clientVersionStr : "v1.2.1" ,
291
+ clientImgStr : "ghcr.io/kubenetworks/kubevpn:v1.2.1" ,
292
+ serverImgStr : "mykubevpn.io/kubenetworks/kubevpn:v1.1.1" ,
293
+ },
294
+ want : false ,
295
+ wantErr : false ,
296
+ },
297
+
298
+ // custom server image registry, client image is same as client version, upgrade
299
+ // client version: v1.2.1
300
+ // client image: ghcr.io/kubenetworks/kubevpn:v1.2.1
301
+ // server image: mykubevpn.io/kubenetworks/kubevpn:v1.1.1
302
+ {
303
+ name : "custom server image registry, client image is same as client version, upgrade" ,
304
+ args : args {
305
+ clientVersionStr : "v1.2.1" ,
306
+ clientImgStr : "mykubevpn.io/kubenetworks/kubevpn:v1.2.1" ,
307
+ serverImgStr : "mykubevpn.io/kubenetworks/kubevpn:v1.1.1" ,
308
+ },
309
+ want : true ,
310
+ wantErr : false ,
311
+ },
312
+ }
313
+
314
+ for _ , tt := range tests {
315
+ t .Run (tt .name , func (t * testing.T ) {
316
+ got , err := newer (tt .args .clientVersionStr , tt .args .clientImgStr , tt .args .serverImgStr )
317
+ if (err != nil ) != tt .wantErr {
318
+ t .Errorf ("newer() error = %v, wantErr %v" , err , tt .wantErr )
319
+ return
320
+ }
321
+ if got != tt .want {
322
+ t .Errorf ("newer() got = %v, want %v" , got , tt .want )
323
+ }
324
+ })
325
+ }
326
+ }
0 commit comments