toasty-driver-integration-suite 0.5.0

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

#[driver_test(id(ID))]
pub async fn different_field_name(test: &mut Test) -> Result<()> {
    #[derive(Debug, toasty::Model)]
    struct User {
        #[key]
        #[auto]
        id: ID,

        #[has_many(pair = owner)]
        todos: toasty::HasMany<Todo>,
    }

    #[derive(Debug, toasty::Model)]
    struct Todo {
        #[key]
        #[auto]
        id: ID,

        #[belongs_to(key = owner_id, references = id)]
        owner: toasty::BelongsTo<User>,

        #[index]
        owner_id: ID,

        title: String,
    }

    let mut db = test.setup_db(models!(User, Todo)).await;

    // Create a user
    let user = User::create().exec(&mut db).await?;

    // Create a Todo associated with the user
    let todo = user
        .todos()
        .create()
        .title("hello world")
        .exec(&mut db)
        .await?;

    assert_eq!(todo.title, "hello world");

    // Load the user
    let user_reloaded = todo.owner().exec(&mut db).await?;

    assert_eq!(user.id, user_reloaded.id);
    Ok(())
}