toasty_driver_integration_suite/tests/
query_count.rs1use 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}