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        None,
17        false,
18        NewUserParams {
19            github_login: "user1".to_string(),
20            github_user_id: 1,
21        },
22    )
23    .await
24    .unwrap();
25
26    assert_eq!(db.get_contributors().await.unwrap(), Vec::<String>::new());
27
28    let user1_created_at = Utc::now();
29    db.add_contributor("user1", 1, None, None, user1_created_at, None)
30        .await
31        .unwrap();
32    assert_eq!(
33        db.get_contributors().await.unwrap(),
34        vec!["user1".to_string()]
35    );
36
37    let user2_created_at = Utc::now();
38    db.add_contributor("user2", 2, None, None, user2_created_at, None)
39        .await
40        .unwrap();
41    assert_eq!(
42        db.get_contributors().await.unwrap(),
43        vec!["user1".to_string(), "user2".to_string()]
44    );
45}