progress-pile/dpts-core/tests/db.rs

70 lines
2.2 KiB
Rust
Raw Normal View History

2025-04-28 20:15:58 +09:00
use std::time::Duration;
use chrono::{offset, FixedOffset, Local, TimeZone};
use sea_orm::{entity::*, query::*, ConnectOptions, Database};
2025-04-28 14:56:28 +09:00
use dpts_migration::{Migrator, MigratorTrait};
2025-04-28 20:15:58 +09:00
use dpts_core::entity::*;
2025-04-28 14:56:28 +09:00
#[tokio::test]
async fn main() {
let mut opt = ConnectOptions::new("sqlite::memory:");
opt.max_connections(100)
.min_connections(5)
.connect_timeout(Duration::from_secs(8))
.acquire_timeout(Duration::from_secs(8))
.idle_timeout(Duration::from_secs(8))
.max_lifetime(Duration::from_secs(8))
.sqlx_logging(true)
.sqlx_logging_level(log::LevelFilter::Info);
//.set_schema_search_path("my_schema"); // Setting default PostgreSQL schema
let db= Database::connect(opt).await.unwrap();
Migrator::fresh(&db).await.unwrap();
2025-04-28 20:15:58 +09:00
let local_date_time = Local::now();
let offset_date_time = local_date_time.with_timezone(local_date_time.offset());
let user = UserActiveModel{
login_name: Set("admin".to_owned()),
password_hash: Set("admin".to_owned()),
created_at: Set(offset_date_time),
updated_at: Set(offset_date_time),
..Default::default()
}.insert(&db)
.await.unwrap();
let record_tag = RecordTagActiveModel{
user_id: Set(user.id),
name: Set("test".to_owned()),
..Default::default()
}.insert(&db)
.await.unwrap();
let record_header = RecordHeaderActiveModel{
user_id: Set(user.id),
created_at: Set(offset_date_time),
updated_at: Set(offset_date_time),
recorded_at: Set(offset_date_time),
comment: Set("".to_owned()),
..Default::default()
}.insert(&db)
.await.unwrap();
RecordDetailActiveModel {
record_header_id: Set(record_header.id),
record_tag_id: Set(record_tag.id),
count: Set(1),
..Default::default()
}.insert(&db)
.await.unwrap();
RecordDetailActiveModel {
record_header_id: Set(record_header.id),
record_tag_id: Set(record_tag.id),
count: Set(2),
..Default::default()
}.insert(&db)
.await.unwrap();
2025-04-28 14:56:28 +09:00
Migrator::reset(&db).await.unwrap();
db.close().await.unwrap();
}