contributor_tests.rs

 1use chrono::Utc;
 2
 3use super::Database;
 4use crate::{db::NewUserParams, test_both_dbs};
 5use std::sync::Arc;
 6
 7test_both_dbs!(
 8    test_contributors,
 9    test_contributors_postgres,
10    test_contributors_sqlite
11);
12
13async fn test_contributors(db: &Arc<Database>) {
14    db.create_user(
15        "user1@example.com",
16        false,
17        NewUserParams {
18            github_login: "user1".to_string(),
19            github_user_id: 1,
20        },
21    )
22    .await
23    .unwrap();
24
25    assert_eq!(db.get_contributors().await.unwrap(), Vec::<String>::new());
26
27    let user1_created_at = Utc::now();
28    db.add_contributor("user1", 1, None, user1_created_at, None)
29        .await
30        .unwrap();
31    assert_eq!(
32        db.get_contributors().await.unwrap(),
33        vec!["user1".to_string()]
34    );
35
36    let user2_created_at = Utc::now();
37    db.add_contributor("user2", 2, None, user2_created_at, None)
38        .await
39        .unwrap();
40    assert_eq!(
41        db.get_contributors().await.unwrap(),
42        vec!["user1".to_string(), "user2".to_string()]
43    );
44}