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}