@@ -195,36 +195,50 @@ func TestFetchAll(t *testing.T) {
195195
196196}
197197
198- func TestCheckVersion (t * testing.T ) {
198+ func TestIsVersionGreaterThanThreshold (t * testing.T ) {
199199 tests := []struct {
200- name string
201- version string
202- expectedError bool
200+ name string
201+ version string
202+ expectedError bool
203+ expectedResponse bool
204+ noApiResponse bool
203205 }{
204206 {
205- name : "Valid version under threshold" ,
206- version : "15.0.0" ,
207- expectedError : true ,
207+ name : "Valid version under threshold" ,
208+ version : "15.0.0" ,
209+ expectedError : false ,
210+ expectedResponse : false ,
208211 },
209212 {
210- name : "Valid version above threshold" ,
211- version : "17.9.3-ce.0" ,
212- expectedError : false ,
213+ name : "Valid version above threshold" ,
214+ version : "17.9.3-ce.0" ,
215+ expectedError : false ,
216+ expectedResponse : true ,
213217 },
214218 {
215- name : "Invalid version format with 1 dot" ,
216- version : "invalid.version" ,
217- expectedError : true ,
219+ name : "Invalid version format with 1 dot" ,
220+ version : "invalid.version" ,
221+ expectedError : true ,
222+ expectedResponse : false ,
218223 },
219224 {
220- name : "Invalid version format with 2 dots" ,
221- version : "invalid.version.1" ,
222- expectedError : true ,
225+ name : "Invalid version format with 2 dots" ,
226+ version : "invalid.version.1" ,
227+ expectedError : true ,
228+ expectedResponse : false ,
223229 },
224230 {
225- name : "Invalid empty version" ,
226- version : "" ,
227- expectedError : true ,
231+ name : "Invalid empty version" ,
232+ version : "" ,
233+ expectedError : true ,
234+ expectedResponse : false ,
235+ },
236+ {
237+ name : "No API response" ,
238+ version : "" ,
239+ expectedError : true ,
240+ expectedResponse : false ,
241+ noApiResponse : true ,
228242 },
229243 }
230244
@@ -234,53 +248,64 @@ func TestCheckVersion(t *testing.T) {
234248 t .Parallel ()
235249
236250 mux , gitlabInstance := setupEmptyTestServer (t , ROLE_DESTINATION , INSTANCE_SIZE_SMALL )
237- mux .HandleFunc ("/api/v4/metadata" , func (w http.ResponseWriter , r * http.Request ) {
238- w .Header ().Set ("Content-Type" , "application/json" )
239- w .WriteHeader (http .StatusOK )
240- _ , err := w .Write ([]byte (`{"version": "` + test .version + `"}` ))
241- if err != nil {
242- t .Errorf ("failed to write response: %v" , err )
243- }
244- })
251+ if ! test .noApiResponse {
252+ mux .HandleFunc ("/api/v4/metadata" , func (w http.ResponseWriter , r * http.Request ) {
253+ w .Header ().Set ("Content-Type" , "application/json" )
254+ w .WriteHeader (http .StatusOK )
255+ _ , err := w .Write ([]byte (`{"version": "` + test .version + `"}` ))
256+ if err != nil {
257+ t .Errorf ("failed to write response: %v" , err )
258+ }
259+ })
260+ }
245261
246- err := gitlabInstance .CheckVersion ()
262+ thresholdOk , err := gitlabInstance .IsVersionGreaterThanThreshold ()
247263 if (err != nil ) != test .expectedError {
248- t .Errorf ("expected error: %v, got: %v" , test .expectedError , err )
264+ t .Fatalf ("expected error: %v, got: %v" , test .expectedError , err )
265+ }
266+ if thresholdOk != test .expectedResponse {
267+ t .Errorf ("expected thresholdOk: %v, got: %v" , test .expectedResponse , thresholdOk )
249268 }
250269 })
251270 }
252271}
253272
254- func TestCheckLicense (t * testing.T ) {
273+ func TestIsLicensePremium (t * testing.T ) {
255274 tests := []struct {
256- name string
257- license string
258- expectedError bool
275+ name string
276+ license string
277+ expectedError bool
278+ expectedResponse bool
259279 }{
260280 {
261- name : "Ultimate tier license" ,
262- license : ULTIMATE_PLAN ,
263- expectedError : false ,
281+ name : "Ultimate tier license" ,
282+ license : ULTIMATE_PLAN ,
283+ expectedError : false ,
284+ expectedResponse : true ,
264285 },
265286 {
266- name : "Premium tier license" ,
267- license : PREMIUM_PLAN ,
268- expectedError : false ,
287+ name : "Premium tier license" ,
288+ license : PREMIUM_PLAN ,
289+ expectedError : false ,
290+ expectedResponse : true ,
269291 },
270292 {
271- name : "Free tier license" ,
272- license : "free" ,
273- expectedError : true ,
293+ name : "Free tier license" ,
294+ license : "free" ,
295+ expectedError : false ,
296+ expectedResponse : false ,
274297 },
275298 {
276- name : "Invalid license" ,
277- license : "invalid" ,
278- expectedError : true ,
299+ name : "Invalid license" ,
300+ license : "invalid" ,
301+ expectedError : false ,
302+ expectedResponse : false ,
279303 },
280304 {
281- name : "Empty license" ,
282- license : "" ,
283- expectedError : true ,
305+ name : "Error API response" ,
306+ license : "" ,
307+ expectedError : true ,
308+ expectedResponse : false ,
284309 },
285310 }
286311 // Iterate over the test cases
@@ -289,18 +314,23 @@ func TestCheckLicense(t *testing.T) {
289314 t .Parallel ()
290315
291316 mux , gitlabInstance := setupEmptyTestServer (t , ROLE_DESTINATION , INSTANCE_SIZE_SMALL )
292- mux .HandleFunc ("/api/v4/license" , func (w http.ResponseWriter , r * http.Request ) {
293- w .Header ().Set ("Content-Type" , "application/json" )
294- w .WriteHeader (http .StatusOK )
295- _ , err := w .Write ([]byte (`{"plan": "` + test .license + `"}` ))
296- if err != nil {
297- t .Errorf ("failed to write response: %v" , err )
298- }
299- })
317+ if ! test .expectedError {
318+ mux .HandleFunc ("/api/v4/license" , func (w http.ResponseWriter , r * http.Request ) {
319+ w .Header ().Set ("Content-Type" , "application/json" )
320+ w .WriteHeader (http .StatusOK )
321+ _ , err := w .Write ([]byte (`{"plan": "` + test .license + `"}` ))
322+ if err != nil {
323+ t .Errorf ("failed to write response: %v" , err )
324+ }
325+ })
326+ }
300327
301- err := gitlabInstance .CheckLicense ()
328+ isPremium , err := gitlabInstance .IsLicensePremium ()
302329 if (err != nil ) != test .expectedError {
303- t .Errorf ("expected error: %v, got: %v" , test .expectedError , err )
330+ t .Fatalf ("expected error: %v, got: %v" , test .expectedError , err )
331+ }
332+ if isPremium != test .expectedResponse {
333+ t .Errorf ("expected isPremium: %v, got: %v" , test .expectedResponse , isPremium )
304334 }
305335 })
306336 }
0 commit comments