toasty-driver-integration-suite 0.5.0

Integration test suite for Toasty database drivers
Documentation
use crate::prelude::*;

#[driver_test(serial)]
pub async fn reset_db_and_recreate(t: &mut Test) -> Result<()> {
    #[derive(Debug, toasty::Model)]
    struct User {
        #[key]
        id: i32,
        name: String,
    }

    // Setup and insert data
    let mut db = t.setup_db(models!(User)).await;
    User::create().id(1).name("Alice").exec(&mut db).await?;
    User::create().id(2).name("Bob").exec(&mut db).await?;

    // Verify data exists by key lookup
    let alice = User::get_by_id(&mut db, &1).await?;
    assert_eq!(alice.name, "Alice");
    let bob = User::get_by_id(&mut db, &2).await?;
    assert_eq!(bob.name, "Bob");

    // Reset the database
    db.reset_db().await?;

    // Re-setup (tables were dropped along with the database)
    let mut db = t.setup_db(models!(User)).await;

    // Verify the data is gone — lookups by known keys should return nothing
    assert_err!(User::get_by_id(&mut db, &1).await);
    assert_err!(User::get_by_id(&mut db, &2).await);
    Ok(())
}