diff --git a/src/entity/loader.rs b/src/entity/loader.rs index 3946e3bb..3b325e7a 100644 --- a/src/entity/loader.rs +++ b/src/entity/loader.rs @@ -284,6 +284,54 @@ where mod tests { #[tokio::test] + async fn test_load_one() { + use crate::{ + entity::prelude::*, tests_cfg::*, DbBackend, IntoMockRow, LoaderTrait, MockDatabase, + }; + + let db = MockDatabase::new(DbBackend::Postgres) + .append_query_results(vec![ + vec![ + cake::Model { + id: 1, + name: "New York Cheese".to_owned(), + }.into_mock_row(), + cake::Model { + id: 2, + name: "London Cheese".to_owned(), + }.into_mock_row() + ], + ]) + .into_connection(); + + let fruits = vec![ + fruit::Model { + id: 1, + name: "Apple".to_owned(), + cake_id: Some(1), + } + ]; + + let cakes = fruits + .load_one(cake::Entity::find(), &db) + .await + .expect("Should return something"); + + assert_eq!( + cakes, + vec![ + Some( + cake::Model { + id: 1, + name: "New York Cheese".to_owned(), + } + ) + ] + ); + } + + #[tokio::test] + async fn test_load_many() { use crate::{ entity::prelude::*, tests_cfg::*, DbBackend, IntoMockRow, LoaderTrait, MockDatabase,