@@ -40,6 +40,10 @@ func mockClientFunc(mockClient client) func() (client, error) {
40
40
}
41
41
}
42
42
43
+ func stableSortRepoID (v []extsvc.RepoID ) {
44
+ slices .SortStableFunc (v , func (a , b extsvc.RepoID ) bool { return strings .Compare (string (a ), string (b )) < 1 })
45
+ }
46
+
43
47
// newMockClientWithTokenMock is used to keep the behaviour of WithToken function mocking
44
48
// which is lost during moving the client interface to mockgen usage
45
49
func newMockClientWithTokenMock () * MockClient {
@@ -156,8 +160,8 @@ func TestProvider_FetchUserPerms(t *testing.T) {
156
160
switch page {
157
161
case 1 :
158
162
return []* github.Repository {
159
- {ID : "MDEwOlJlcG9zaXRvcnkyNTI0MjU2NzE=" }, // existing repo
160
163
{ID : "MDEwOlJlcG9zaXRvcnkyNDQ1MTc1234=" },
164
+ {ID : "MDEwOlJlcG9zaXRvcnkyNTI0MjU2NzE=" }, // existing repo
161
165
}, true , 1 , nil
162
166
case 2 :
163
167
return []* github.Repository {
@@ -202,11 +206,12 @@ func TestProvider_FetchUserPerms(t *testing.T) {
202
206
203
207
wantRepoIDs := []extsvc.RepoID {
204
208
"MDEwOlJlcG9zaXRvcnkyNDI2NTEwMDA=" ,
205
- "MDEwOlJlcG9zaXRvcnkyNTI0MjU2NzE=" ,
206
209
"MDEwOlJlcG9zaXRvcnkyNDQ1MTc1MzY=" ,
210
+ "MDEwOlJlcG9zaXRvcnkyNTI0MjU2NzE=" ,
207
211
}
208
- slices .Sort (wantRepoIDs )
209
- slices .Sort (repoIDs .Exacts )
212
+
213
+ stableSortRepoID (wantRepoIDs )
214
+ stableSortRepoID (repoIDs .Exacts )
210
215
if diff := cmp .Diff (wantRepoIDs , repoIDs .Exacts ); diff != "" {
211
216
t .Fatalf ("RepoIDs mismatch (-want +got):\n %s" , diff )
212
217
}
@@ -251,12 +256,12 @@ func TestProvider_FetchUserPerms(t *testing.T) {
251
256
}
252
257
253
258
wantRepoIDs := []extsvc.RepoID {
254
- "MDEwOlJlcG9zaXRvcnkyNTI0MjU2NzE=" ,
255
- "MDEwOlJlcG9zaXRvcnkyNDQ1MTc1MzY=" ,
256
259
"MDEwOlJlcG9zaXRvcnkyNDI2NTEwMDA=" ,
260
+ "MDEwOlJlcG9zaXRvcnkyNDQ1MTc1MzY=" ,
261
+ "MDEwOlJlcG9zaXRvcnkyNTI0MjU2NzE=" ,
257
262
}
258
- slices . Sort (wantRepoIDs )
259
- slices . Sort (repoIDs .Exacts )
263
+ stableSortRepoID (wantRepoIDs )
264
+ stableSortRepoID (repoIDs .Exacts )
260
265
if diff := cmp .Diff (wantRepoIDs , repoIDs .Exacts ); diff != "" {
261
266
t .Fatalf ("RepoIDs mismatch (-want +got):\n %s" , diff )
262
267
}
@@ -284,15 +289,15 @@ func TestProvider_FetchUserPerms(t *testing.T) {
284
289
}
285
290
286
291
wantRepoIDs := []extsvc.RepoID {
287
- "MDEwOlJlcG9zaXRvcnkyNTI0MjU2NzE=" ,
288
- "MDEwOlJlcG9zaXRvcnkyNDQ1MTc1MzY=" ,
292
+ "MDEwOlJlcG9zaXRvcnkyNDI2NTE5678=" ,
289
293
"MDEwOlJlcG9zaXRvcnkyNDI2NTEwMDA=" ,
290
294
"MDEwOlJlcG9zaXRvcnkyNDI2NTadmin=" ,
291
295
"MDEwOlJlcG9zaXRvcnkyNDQ1MTc1234=" ,
292
- "MDEwOlJlcG9zaXRvcnkyNDI2NTE5678=" ,
296
+ "MDEwOlJlcG9zaXRvcnkyNDQ1MTc1MzY=" ,
297
+ "MDEwOlJlcG9zaXRvcnkyNTI0MjU2NzE=" ,
293
298
}
294
- slices . Sort (wantRepoIDs )
295
- slices . Sort (repoIDs .Exacts )
299
+ stableSortRepoID (wantRepoIDs )
300
+ stableSortRepoID (repoIDs .Exacts )
296
301
if diff := cmp .Diff (wantRepoIDs , repoIDs .Exacts ); diff != "" {
297
302
t .Fatalf ("RepoIDs mismatch (-want +got):\n %s" , diff )
298
303
}
@@ -355,17 +360,17 @@ func TestProvider_FetchUserPerms(t *testing.T) {
355
360
}
356
361
357
362
wantRepoIDs := []extsvc.RepoID {
358
- "MDEwOlJlcG9zaXRvcnkyNTI0MjU2NzE=" ,
359
- "MDEwOlJlcG9zaXRvcnkyNDQ1MTc1MzY=" ,
363
+ "MDEwOlJlcG9zaXRvcnkyNDI2NTE5678=" ,
360
364
"MDEwOlJlcG9zaXRvcnkyNDI2NTEwMDA=" ,
361
365
"MDEwOlJlcG9zaXRvcnkyNDI2NTadmin=" ,
366
+ "MDEwOlJlcG9zaXRvcnkyNDI2nsteam2=" ,
362
367
"MDEwOlJlcG9zaXRvcnkyNDQ1MTc1234=" ,
363
- "MDEwOlJlcG9zaXRvcnkyNDI2NTE5678 =" ,
368
+ "MDEwOlJlcG9zaXRvcnkyNDQ1MTc1MzY =" ,
364
369
"MDEwOlJlcG9zaXRvcnkyNDQ1nsteam1=" ,
365
- "MDEwOlJlcG9zaXRvcnkyNDI2nsteam2 =" ,
370
+ "MDEwOlJlcG9zaXRvcnkyNTI0MjU2NzE =" ,
366
371
}
367
- slices . Sort (wantRepoIDs )
368
- slices . Sort (repoIDs .Exacts )
372
+ stableSortRepoID (wantRepoIDs )
373
+ stableSortRepoID (repoIDs .Exacts )
369
374
if diff := cmp .Diff (wantRepoIDs , repoIDs .Exacts ); diff != "" {
370
375
t .Fatalf ("RepoIDs mismatch (-want +got):\n %s" , diff )
371
376
}
@@ -411,15 +416,15 @@ func TestProvider_FetchUserPerms(t *testing.T) {
411
416
}
412
417
413
418
wantRepoIDs := []extsvc.RepoID {
414
- "MDEwOlJlcG9zaXRvcnkyNTI0MjU2NzE=" , // from ListAffiliatedRepos
415
- "MDEwOlJlcG9zaXRvcnkyNDQ1MTc1MzY=" , // from ListAffiliatedRepos
419
+ "MDEwOlJlcG9zaXRvcnkyNDI2NTE5678=" , // from ListOrgRepositories
416
420
"MDEwOlJlcG9zaXRvcnkyNDI2NTEwMDA=" , // from ListAffiliatedRepos
417
421
"MDEwOlJlcG9zaXRvcnkyNDI2NTadmin=" , // from ListOrgRepositories
418
422
"MDEwOlJlcG9zaXRvcnkyNDQ1MTc1234=" , // from ListOrgRepositories
419
- "MDEwOlJlcG9zaXRvcnkyNDI2NTE5678=" , // from ListOrgRepositories
423
+ "MDEwOlJlcG9zaXRvcnkyNDQ1MTc1MzY=" , // from ListAffiliatedRepos
424
+ "MDEwOlJlcG9zaXRvcnkyNTI0MjU2NzE=" , // from ListAffiliatedRepos
420
425
}
421
- slices . Sort (wantRepoIDs )
422
- slices . Sort (repoIDs .Exacts )
426
+ stableSortRepoID (wantRepoIDs )
427
+ stableSortRepoID (repoIDs .Exacts )
423
428
if diff := cmp .Diff (wantRepoIDs , repoIDs .Exacts ); diff != "" {
424
429
t .Fatalf ("RepoIDs mismatch (-want +got):\n %s" , diff )
425
430
}
@@ -464,16 +469,16 @@ func TestProvider_FetchUserPerms(t *testing.T) {
464
469
p .groupsCache = memCache
465
470
466
471
wantRepoIDs := []extsvc.RepoID {
467
- "MDEwOlJlcG9zaXRvcnkyNTI0MjU2NzE=" ,
468
- "MDEwOlJlcG9zaXRvcnkyNDQ1MTc1MzY=" ,
472
+ "MDEwOlJlcG9zaXRvcnkyNDI2NTE5678=" ,
469
473
"MDEwOlJlcG9zaXRvcnkyNDI2NTEwMDA=" ,
470
474
"MDEwOlJlcG9zaXRvcnkyNDI2NTadmin=" ,
471
- "MDEwOlJlcG9zaXRvcnkyNDQ1MTc1234=" ,
472
- "MDEwOlJlcG9zaXRvcnkyNDI2NTE5678=" ,
473
475
"MDEwOlJlcG9zaXRvcnkyNDI2nsteam1=" ,
476
+ "MDEwOlJlcG9zaXRvcnkyNDQ1MTc1234=" ,
477
+ "MDEwOlJlcG9zaXRvcnkyNDQ1MTc1MzY=" ,
478
+ "MDEwOlJlcG9zaXRvcnkyNTI0MjU2NzE=" ,
474
479
}
475
- slices .Sort (wantRepoIDs )
476
480
481
+ stableSortRepoID (wantRepoIDs )
477
482
// first call
478
483
t .Run ("first call" , func (t * testing.T ) {
479
484
repoIDs , err := p .FetchUserPerms (context .Background (),
@@ -487,7 +492,7 @@ func TestProvider_FetchUserPerms(t *testing.T) {
487
492
t .Fatalf ("expected repos to be listed: callsToListOrgRepos=%d, callsToListTeamRepos=%d" ,
488
493
callsToListOrgRepos , callsToListTeamRepos )
489
494
}
490
- slices . Sort (repoIDs .Exacts )
495
+ stableSortRepoID (repoIDs .Exacts )
491
496
if diff := cmp .Diff (wantRepoIDs , repoIDs .Exacts ); diff != "" {
492
497
t .Fatalf ("RepoIDs mismatch (-want +got):\n %s" , diff )
493
498
}
@@ -508,7 +513,7 @@ func TestProvider_FetchUserPerms(t *testing.T) {
508
513
t .Fatalf ("expected repos not to be listed: callsToListOrgRepos=%d, callsToListTeamRepos=%d" ,
509
514
callsToListOrgRepos , callsToListTeamRepos )
510
515
}
511
- slices . Sort (repoIDs .Exacts )
516
+ stableSortRepoID (repoIDs .Exacts )
512
517
if diff := cmp .Diff (wantRepoIDs , repoIDs .Exacts ); diff != "" {
513
518
t .Fatalf ("RepoIDs mismatch (-want +got):\n %s" , diff )
514
519
}
@@ -529,7 +534,7 @@ func TestProvider_FetchUserPerms(t *testing.T) {
529
534
t .Fatalf ("expected repos to be listed: callsToListOrgRepos=%d, callsToListTeamRepos=%d" ,
530
535
callsToListOrgRepos , callsToListTeamRepos )
531
536
}
532
- slices . Sort (repoIDs .Exacts )
537
+ stableSortRepoID (repoIDs .Exacts )
533
538
if diff := cmp .Diff (wantRepoIDs , repoIDs .Exacts ); diff != "" {
534
539
t .Fatalf ("RepoIDs mismatch (-want +got):\n %s" , diff )
535
540
}
0 commit comments