toasty_driver_integration_suite/tests/
query_count.rs

1use crate::prelude::*;
2
3#[driver_test(id(ID), requires(sql), scenario(crate::scenarios::two_models))]
4pub async fn count_empty_table(t: &mut Test) -> Result<()> {
5    let mut db = setup(t).await;
6
7    let count = User::all().count().exec(&mut db).await?;
8    assert_eq!(count, 0);
9
10    Ok(())
11}
12
13#[driver_test(id(ID), requires(sql), scenario(crate::scenarios::two_models))]
14pub async fn count_after_inserts(t: &mut Test) -> Result<()> {
15    let mut db = setup(t).await;
16
17    toasty::create!(User::[
18        { name: "a" },
19        { name: "b" },
20        { name: "c" },
21    ])
22    .exec(&mut db)
23    .await?;
24
25    let count = User::all().count().exec(&mut db).await?;
26    assert_eq!(count, 3);
27
28    Ok(())
29}
30
31#[driver_test(id(ID), requires(sql), scenario(crate::scenarios::two_models))]
32pub async fn count_with_filter(t: &mut Test) -> Result<()> {
33    let mut db = setup(t).await;
34
35    toasty::create!(User::[
36        { name: "a" },
37        { name: "a" },
38        { name: "b" },
39    ])
40    .exec(&mut db)
41    .await?;
42
43    let count = User::filter_by_name("a").count().exec(&mut db).await?;
44    assert_eq!(count, 2);
45
46    let count = User::filter_by_name("b").count().exec(&mut db).await?;
47    assert_eq!(count, 1);
48
49    let count = User::filter_by_name("c").count().exec(&mut db).await?;
50    assert_eq!(count, 0);
51
52    Ok(())
53}