toasty_driver_integration_suite/tests/
reset_db.rs

1use crate::prelude::*;
2
3#[driver_test(serial)]
4pub async fn reset_db_and_recreate(t: &mut Test) -> Result<()> {
5    #[derive(Debug, toasty::Model)]
6    struct User {
7        #[key]
8        id: i32,
9        name: String,
10    }
11
12    // Setup and insert data
13    let mut db = t.setup_db(models!(User)).await;
14    User::create().id(1).name("Alice").exec(&mut db).await?;
15    User::create().id(2).name("Bob").exec(&mut db).await?;
16
17    // Verify data exists by key lookup
18    let alice = User::get_by_id(&mut db, &1).await?;
19    assert_eq!(alice.name, "Alice");
20    let bob = User::get_by_id(&mut db, &2).await?;
21    assert_eq!(bob.name, "Bob");
22
23    // Reset the database
24    db.reset_db().await?;
25
26    // Re-setup (tables were dropped along with the database)
27    let mut db = t.setup_db(models!(User)).await;
28
29    // Verify the data is gone — lookups by known keys should return nothing
30    assert_err!(User::get_by_id(&mut db, &1).await);
31    assert_err!(User::get_by_id(&mut db, &2).await);
32    Ok(())
33}