Skip to main content

toasty_driver_integration_suite/tests/
raw_identifier_fields.rs

1use 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}