sea-orm/tests/active_enum_tests.rs
2021-10-20 18:02:23 +08:00

64 lines
1.4 KiB
Rust

pub mod common;
pub use common::{features::*, setup::*, TestContext};
use sea_orm::{entity::prelude::*, entity::*, DatabaseConnection};
#[sea_orm_macros::test]
#[cfg(any(
feature = "sqlx-mysql",
feature = "sqlx-sqlite",
feature = "sqlx-postgres"
))]
async fn main() -> Result<(), DbErr> {
let ctx = TestContext::new("active_enum_tests").await;
create_tables(&ctx.db).await?;
insert_active_enum(&ctx.db).await?;
ctx.delete().await;
Ok(())
}
pub async fn insert_active_enum(db: &DatabaseConnection) -> Result<(), DbErr> {
use active_enum::*;
let am = ActiveModel {
category: Set(None),
color: Set(None),
// tea: Set(None),
..Default::default()
}
.insert(db)
.await?;
assert_eq!(
Entity::find().one(db).await?.unwrap(),
Model {
id: 1,
category: None,
color: None,
// tea: None,
}
);
ActiveModel {
category: Set(Some(Category::Big)),
color: Set(Some(Color::Black)),
// tea: Set(Some(Tea::EverydayTea)),
..am
}
.save(db)
.await?;
assert_eq!(
Entity::find().one(db).await?.unwrap(),
Model {
id: 1,
category: Some(Category::Big),
color: Some(Color::Black),
// tea: Some(Tea::EverydayTea),
}
);
Ok(())
}