Skip to content

Commit e5f03bd

Browse files
committed
Add tests for previous assigned reviewers
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
1 parent 1c72dfc commit e5f03bd

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

src/handlers/assign/tests/tests_candidates.rs

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,20 @@ impl AssignCtx {
7272
self
7373
}
7474

75+
async fn set_previous_reviewers(
76+
mut self,
77+
users: &[&User],
78+
) -> Self {
79+
let mut db = self.test_ctx.db_client_mut();
80+
for user in users {
81+
let mut state: IssueData<'_, Reviewers> =
82+
IssueData::load(&mut db, &self.issue, PREVIOUS_REVIEWERS_KEY).await.unwrap();
83+
state.data.names.insert(user.login.to_string());
84+
state.save().await.unwrap();
85+
}
86+
self
87+
}
88+
7589
async fn check(
7690
mut self,
7791
names: &[&str],
@@ -528,3 +542,46 @@ async fn vacation() {
528542
})
529543
.await;
530544
}
545+
546+
#[tokio::test]
547+
async fn previous_reviewers_ignore_in_team_success() {
548+
let teams = toml::toml!(compiler = ["martin", "jyn514"]);
549+
let config = toml::toml!([assign]);
550+
run_db_test(|ctx| async move {
551+
let user = user("martin", 1);
552+
basic_test(ctx, config, issue().call())
553+
.teams(&teams)
554+
.set_previous_reviewers(&[&user])
555+
.await.check(&["compiler"], Ok(&["jyn514"]))
556+
.await
557+
}).await;
558+
}
559+
560+
#[tokio::test]
561+
async fn previous_reviewers_ignore_in_team_failed() {
562+
let teams = toml::toml!(compiler = ["martin", "jyn514"]);
563+
let config = toml::toml!([assign]);
564+
run_db_test(|ctx| async move {
565+
let user1 = user("martin", 1);
566+
let user2 = user("jyn514", 2);
567+
basic_test(ctx, config, issue().call())
568+
.teams(&teams)
569+
.set_previous_reviewers(&[&user1, &user2])
570+
.await.check(&["compiler"], Err(FindReviewerError::NoReviewer { initial: vec!["compiler".to_string()] }))
571+
.await
572+
}).await
573+
}
574+
575+
#[tokio::test]
576+
async fn previous_reviewers_direct_assignee() {
577+
let teams = toml::toml!(compiler = ["martin", "jyn514"]);
578+
let config = toml::toml!([assign]);
579+
run_db_test(|ctx| async move {
580+
let user1 = user("martin", 1);
581+
let user2 = user("jyn514", 2);
582+
basic_test(ctx, config, issue().call())
583+
.teams(&teams)
584+
.set_previous_reviewers(&[&user1, &user2])
585+
.await.check(&["jyn514"], Ok(&["jyn514"])).await
586+
}).await
587+
}

0 commit comments

Comments
 (0)