message_tests.rs

 1use crate::{
 2    db::{Database, NewUserParams},
 3    test_both_dbs,
 4};
 5use std::sync::Arc;
 6use time::OffsetDateTime;
 7
 8test_both_dbs!(
 9    test_channel_message_nonces,
10    test_channel_message_nonces_postgres,
11    test_channel_message_nonces_sqlite
12);
13
14async fn test_channel_message_nonces(db: &Arc<Database>) {
15    let user = db
16        .create_user(
17            "user@example.com",
18            false,
19            NewUserParams {
20                github_login: "user".into(),
21                github_user_id: 1,
22                invite_count: 0,
23            },
24        )
25        .await
26        .unwrap()
27        .user_id;
28    let channel = db
29        .create_channel("channel", None, "room", user)
30        .await
31        .unwrap();
32
33    let owner_id = db.create_server("test").await.unwrap().0 as u32;
34
35    db.join_channel_chat(channel, rpc::ConnectionId { owner_id, id: 0 }, user)
36        .await
37        .unwrap();
38
39    let msg1_id = db
40        .create_channel_message(channel, user, "1", OffsetDateTime::now_utc(), 1)
41        .await
42        .unwrap();
43    let msg2_id = db
44        .create_channel_message(channel, user, "2", OffsetDateTime::now_utc(), 2)
45        .await
46        .unwrap();
47    let msg3_id = db
48        .create_channel_message(channel, user, "3", OffsetDateTime::now_utc(), 1)
49        .await
50        .unwrap();
51    let msg4_id = db
52        .create_channel_message(channel, user, "4", OffsetDateTime::now_utc(), 2)
53        .await
54        .unwrap();
55
56    assert_ne!(msg1_id, msg2_id);
57    assert_eq!(msg1_id, msg3_id);
58    assert_eq!(msg2_id, msg4_id);
59}