toasty_driver_integration_suite/tests/
belongs_to_configured.rs

1use crate::prelude::*;
2
3#[driver_test(id(ID))]
4pub async fn different_field_name(test: &mut Test) -> Result<()> {
5    #[derive(Debug, toasty::Model)]
6    struct User {
7        #[key]
8        #[auto]
9        id: ID,
10
11        #[has_many(pair = owner)]
12        todos: toasty::HasMany<Todo>,
13    }
14
15    #[derive(Debug, toasty::Model)]
16    struct Todo {
17        #[key]
18        #[auto]
19        id: ID,
20
21        #[belongs_to(key = owner_id, references = id)]
22        owner: toasty::BelongsTo<User>,
23
24        #[index]
25        owner_id: ID,
26
27        title: String,
28    }
29
30    let mut db = test.setup_db(models!(User, Todo)).await;
31
32    // Create a user
33    let user = User::create().exec(&mut db).await?;
34
35    // Create a Todo associated with the user
36    let todo = user
37        .todos()
38        .create()
39        .title("hello world")
40        .exec(&mut db)
41        .await?;
42
43    assert_eq!(todo.title, "hello world");
44
45    // Load the user
46    let user_reloaded = todo.owner().get(&mut db).await?;
47
48    assert_eq!(user.id, user_reloaded.id);
49    Ok(())
50}