From 5cdcdbfc1c051b6105a6ecd50dd10c424040705c Mon Sep 17 00:00:00 2001 From: Chris Tsang Date: Thu, 19 Jan 2023 01:23:21 +0800 Subject: [PATCH] Add testcase --- tests/string_primary_key_tests.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/tests/string_primary_key_tests.rs b/tests/string_primary_key_tests.rs index 94d1ae55..9ed4df47 100644 --- a/tests/string_primary_key_tests.rs +++ b/tests/string_primary_key_tests.rs @@ -2,7 +2,7 @@ pub mod common; pub use common::{features::*, setup::*, TestContext}; use pretty_assertions::assert_eq; -use sea_orm::{entity::prelude::*, entity::*, DatabaseConnection}; +use sea_orm::{entity::prelude::*, entity::*, sea_query::OnConflict, DatabaseConnection}; use serde_json::json; #[sea_orm_macros::test] @@ -30,7 +30,7 @@ pub async fn insert_and_delete_repository(db: &DatabaseConnection) -> Result<(), } .into_active_model(); - let result = repository.insert(db).await?; + let result = repository.clone().insert(db).await?; assert_eq!( result, @@ -42,6 +42,17 @@ pub async fn insert_and_delete_repository(db: &DatabaseConnection) -> Result<(), } ); + #[cfg(any(feature = "sqlx-sqlite", feature = "sqlx-postgres"))] + { + let err = Repository::insert(repository) + // MySQL does not support DO NOTHING, we might workaround that later + .on_conflict(OnConflict::new().do_nothing().to_owned()) + .exec(db) + .await; + + assert_eq!(err.err(), Some(DbErr::RecordNotInserted)); + } + result.delete(db).await?; assert_eq!(