Skip to content

Commit fcfc57e

Browse files
committed
Add tests for previous assigned reviewers
Signed-off-by: xizheyin <[email protected]>
1 parent 1c72dfc commit fcfc57e

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

src/handlers/assign/tests/tests_candidates.rs

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

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

0 commit comments

Comments
 (0)