toasty_driver_integration_suite/tests/
raw_identifier_fields.rs1use crate::prelude::*;
2
3#[driver_test(id(ID))]
4pub async fn create_filter_update_by_raw_identifier_field(t: &mut Test) -> Result<()> {
5 #[derive(Debug, toasty::Model)]
6 struct User {
7 #[key]
8 #[auto]
9 id: ID,
10
11 #[index]
12 r#type: String,
13 }
14
15 let mut db = t.setup_db(models!(User)).await;
16
17 let mut user = toasty::create!(User { r#type: "admin" })
18 .exec(&mut db)
19 .await?;
20 assert_eq!(user.r#type, "admin");
21
22 let reload = User::get_by_id(&mut db, &user.id).await?;
23 assert_eq!(reload.r#type, "admin");
24
25 let by_type = User::filter_by_type("admin").exec(&mut db).await?;
26 assert_eq!(by_type.len(), 1);
27 assert_eq!(by_type[0].id, user.id);
28
29 user.update().r#type("guest").exec(&mut db).await?;
30 assert_eq!(user.r#type, "guest");
31
32 let reload = User::get_by_id(&mut db, &user.id).await?;
33 assert_eq!(reload.r#type, "guest");
34
35 Ok(())
36}