@@ -162,18 +162,17 @@ async fn no_review_prefs() {
162
162
163
163
#[ tokio:: test]
164
164
async fn at_max_capacity ( ) {
165
+ let teams = toml:: toml!( compiler = [ "martin" , "diana" ] ) ;
165
166
run_db_test ( |ctx| async move {
166
167
let user = user ( "martin" , 1 ) ;
167
168
review_prefs_test ( ctx)
169
+ . teams ( & teams)
168
170
. set_review_prefs ( & user, Some ( 3 ) , RotationMode :: OnRotation )
169
171
. await
170
172
. assign_prs ( user. id , 3 )
171
- . check (
172
- & [ "martin" ] ,
173
- Err ( FindReviewerError :: ReviewerAtMaxCapacity {
174
- username : "martin" . to_string ( ) ,
175
- } ) ,
176
- )
173
+ . check ( & [ "martin" ] , Ok ( & [ "martin" ] ) )
174
+ . await ?
175
+ . check ( & [ "compiler" ] , Ok ( & [ "diana" ] ) )
177
176
. await
178
177
} )
179
178
. await ;
@@ -195,56 +194,53 @@ async fn below_max_capacity() {
195
194
196
195
#[ tokio:: test]
197
196
async fn above_max_capacity ( ) {
197
+ let teams = toml:: toml!( compiler = [ "martin" , "diana" ] ) ;
198
198
run_db_test ( |ctx| async move {
199
199
let user = user ( "martin" , 1 ) ;
200
200
review_prefs_test ( ctx)
201
+ . teams ( & teams)
201
202
. set_review_prefs ( & user, Some ( 3 ) , RotationMode :: OnRotation )
202
203
. await
203
204
. assign_prs ( user. id , 10 )
204
- . check (
205
- & [ "martin" ] ,
206
- Err ( FindReviewerError :: ReviewerAtMaxCapacity {
207
- username : "martin" . to_string ( ) ,
208
- } ) ,
209
- )
205
+ . check ( & [ "martin" ] , Ok ( & [ "martin" ] ) )
206
+ . await ?
207
+ . check ( & [ "compiler" ] , Ok ( & [ "diana" ] ) )
210
208
. await
211
209
} )
212
210
. await ;
213
211
}
214
212
215
213
#[ tokio:: test]
216
214
async fn max_capacity_zero ( ) {
215
+ let teams = toml:: toml!( compiler = [ "martin" , "diana" ] ) ;
217
216
run_db_test ( |ctx| async move {
218
217
let user = user ( "martin" , 1 ) ;
219
218
review_prefs_test ( ctx)
219
+ . teams ( & teams)
220
220
. set_review_prefs ( & user, Some ( 0 ) , RotationMode :: OnRotation )
221
221
. await
222
222
. assign_prs ( user. id , 0 )
223
- . check (
224
- & [ "martin" ] ,
225
- Err ( FindReviewerError :: ReviewerAtMaxCapacity {
226
- username : "martin" . to_string ( ) ,
227
- } ) ,
228
- )
223
+ . check ( & [ "martin" ] , Ok ( & [ "martin" ] ) )
224
+ . await ?
225
+ . check ( & [ "compiler" ] , Ok ( & [ "diana" ] ) )
229
226
. await
230
227
} )
231
228
. await ;
232
229
}
233
230
234
231
#[ tokio:: test]
235
232
async fn ignore_username_case ( ) {
233
+ let teams = toml:: toml!( compiler = [ "martin" , "diana" ] ) ;
236
234
run_db_test ( |ctx| async move {
237
235
let user = user ( "MARtin" , 1 ) ;
238
236
review_prefs_test ( ctx)
237
+ . teams ( & teams)
239
238
. set_review_prefs ( & user, Some ( 3 ) , RotationMode :: OnRotation )
240
239
. await
241
240
. assign_prs ( user. id , 3 )
242
- . check (
243
- & [ "MARTIN" ] ,
244
- Err ( FindReviewerError :: ReviewerAtMaxCapacity {
245
- username : "MARTIN" . to_string ( ) ,
246
- } ) ,
247
- )
241
+ . check ( & [ "MARTIN" ] , Ok ( & [ "MARTIN" ] ) )
242
+ . await ?
243
+ . check ( & [ "compiler" ] , Ok ( & [ "diana" ] ) )
248
244
. await
249
245
} )
250
246
. await ;
@@ -264,24 +260,6 @@ async fn unlimited_capacity() {
264
260
. await ;
265
261
}
266
262
267
- #[ tokio:: test]
268
- async fn ignore_user_off_rotation_direct ( ) {
269
- run_db_test ( |ctx| async move {
270
- let user = user ( "martin" , 1 ) ;
271
- review_prefs_test ( ctx)
272
- . set_review_prefs ( & user, None , RotationMode :: OffRotation )
273
- . await
274
- . check (
275
- & [ "martin" ] ,
276
- Err ( FindReviewerError :: ReviewerOffRotation {
277
- username : "martin" . to_string ( ) ,
278
- } ) ,
279
- )
280
- . await
281
- } )
282
- . await ;
283
- }
284
-
285
263
#[ tokio:: test]
286
264
async fn ignore_user_off_rotation_through_team ( ) {
287
265
run_db_test ( |ctx| async move {
@@ -297,25 +275,6 @@ async fn ignore_user_off_rotation_through_team() {
297
275
. await ;
298
276
}
299
277
300
- #[ tokio:: test]
301
- async fn review_prefs_prefer_capacity_before_rotation ( ) {
302
- run_db_test ( |ctx| async move {
303
- let user = user ( "martin" , 1 ) ;
304
- review_prefs_test ( ctx)
305
- . set_review_prefs ( & user, Some ( 1 ) , RotationMode :: OffRotation )
306
- . await
307
- . assign_prs ( user. id , 2 )
308
- . check (
309
- & [ "martin" ] ,
310
- Err ( FindReviewerError :: ReviewerAtMaxCapacity {
311
- username : "martin" . to_string ( ) ,
312
- } ) ,
313
- )
314
- . await
315
- } )
316
- . await ;
317
- }
318
-
319
278
#[ tokio:: test]
320
279
async fn multiple_reviewers ( ) {
321
280
run_db_test ( |ctx| async move {
@@ -522,21 +481,17 @@ async fn invalid_org_doesnt_match() {
522
481
}
523
482
524
483
#[ tokio:: test]
525
- async fn vacation ( ) {
484
+ async fn users_on_vacation ( ) {
526
485
let teams = toml:: toml!( bootstrap = [ "jyn514" , "Mark-Simulacrum" ] ) ;
527
486
let config = toml:: toml!( users_on_vacation = [ "jyn514" ] ) ;
528
487
529
488
run_db_test ( |ctx| async move {
530
- // Test that `r? user` returns a specific error about the user being on vacation.
531
489
basic_test ( ctx, config, issue ( ) . call ( ) )
532
490
. teams ( & teams)
533
- . check (
534
- & [ "jyn514" ] ,
535
- Err ( FindReviewerError :: ReviewerOffRotation {
536
- username : "jyn514" . to_string ( ) ,
537
- } ) ,
538
- )
491
+ // Allow direct assignment
492
+ . check ( & [ "jyn514" ] , Ok ( & [ "jyn514" ] ) )
539
493
. await ?
494
+ // But ignore the user when requesting a team
540
495
. check ( & [ "bootstrap" ] , Ok ( & [ "Mark-Simulacrum" ] ) )
541
496
. await
542
497
} )
0 commit comments