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}