* adds find_with_linked test * WIP(related test) * mock related test done * complete relation test * loader update * find_with/also_related missing test case for empty from other side * comments fixup * revert loader test * related select test done * find with/also linked test cases * removed due to it being functionally same as the new one * fmt, remove excess import * improved model generation * issue related test case #1790 * added loader test cases and slight improvement to find_related/linked * miscellaneous changes * added empty insert, merge load_one test case * completed loader many to many test case, fmt * removed empty_insert test case for now * commented insert_test * added Cargo.toml for issue 1790's folder * buffed salvo version for ci(0.49 yanked) * revert version for salvo example
54 lines
1.4 KiB
Rust
54 lines
1.4 KiB
Rust
pub mod common;
|
|
mod crud;
|
|
|
|
pub use common::{bakery_chain::*, setup::*, TestContext};
|
|
pub use sea_orm::{
|
|
entity::*, error::DbErr, tests_cfg, DatabaseConnection, DbBackend, EntityName, ExecResult,
|
|
};
|
|
|
|
pub use crud::*;
|
|
// use common::bakery_chain::*;
|
|
use sea_orm::{DbConn, TryInsertResult};
|
|
use sea_query::OnConflict;
|
|
|
|
#[sea_orm_macros::test]
|
|
#[cfg(any(
|
|
feature = "sqlx-mysql",
|
|
feature = "sqlx-sqlite",
|
|
feature = "sqlx-postgres"
|
|
))]
|
|
async fn main() {
|
|
let ctx = TestContext::new("bakery_chain_empty_insert_tests").await;
|
|
create_tables(&ctx.db).await.unwrap();
|
|
test(&ctx.db).await;
|
|
ctx.delete().await;
|
|
}
|
|
|
|
pub async fn test(db: &DbConn) {
|
|
let seaside_bakery = bakery::ActiveModel {
|
|
name: Set("SeaSide Bakery".to_owned()),
|
|
profit_margin: Set(10.4),
|
|
..Default::default()
|
|
};
|
|
|
|
let res = Bakery::insert(seaside_bakery)
|
|
.on_empty_do_nothing()
|
|
.exec(db)
|
|
.await;
|
|
|
|
assert!(matches!(res, Ok(TryInsertResult::Inserted(_))));
|
|
|
|
let double_seaside_bakery = bakery::ActiveModel {
|
|
name: Set("SeaSide Bakery".to_owned()),
|
|
profit_margin: Set(10.4),
|
|
id: Set(1),
|
|
};
|
|
|
|
let empty_insert = Bakery::insert_many(std::iter::empty::<bakery::ActiveModel>())
|
|
.on_empty_do_nothing()
|
|
.exec(db)
|
|
.await;
|
|
|
|
assert!(matches!(empty_insert, Ok(TryInsertResult::Empty)));
|
|
}
|