Manually truncate the tables for MySQL
This commit is contained in:
parent
82b63589d3
commit
8bfad93d30
@ -13,7 +13,7 @@ impl EntityName for Entity {
|
||||
pub struct Model {
|
||||
pub id: i32,
|
||||
pub name: String,
|
||||
pub profit_margin: f64,
|
||||
pub profit_margin: f32,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, EnumIter, DeriveColumn)]
|
||||
|
@ -16,30 +16,66 @@ macro_rules! function {
|
||||
}
|
||||
|
||||
pub struct TestContext {
|
||||
base_url: String,
|
||||
db_name: String,
|
||||
pub db: DatabaseConnection,
|
||||
}
|
||||
|
||||
impl TestContext {
|
||||
pub async fn new(base_url: &str, db_name: &str) -> Self {
|
||||
pub async fn new() -> Self {
|
||||
let db: DatabaseConnection = setup::setup().await;
|
||||
|
||||
// let stmt: Statement = Statement::from("BEGIN".to_string());
|
||||
// let stmt: Statement = Statement::from("SET autocommit=0;\nSTART TRANSACTION;".to_string());
|
||||
// let _ = db.execute(stmt).await;
|
||||
|
||||
Self {
|
||||
base_url: base_url.to_string(),
|
||||
db_name: db_name.to_string(),
|
||||
db,
|
||||
}
|
||||
Self { db }
|
||||
}
|
||||
}
|
||||
|
||||
impl Drop for TestContext {
|
||||
fn drop(&mut self) {
|
||||
// println!("dropping context");
|
||||
// let stmt: Statement = Statement::from("ROLLBACK".to_string());
|
||||
// let _ = self.db.execute(stmt);
|
||||
pub async fn delete(&self) {
|
||||
// let stmt = sea_query::Table::drop()
|
||||
// .table(baker::Entity)
|
||||
// .table(baker::Entity)
|
||||
// .to_owned();
|
||||
|
||||
// let builder = self.db.get_schema_builder_backend();
|
||||
// let result = self.db.execute(builder.build(&stmt)).await;
|
||||
|
||||
let _ = self
|
||||
.db
|
||||
.execute(Statement::from("SET FOREIGN_KEY_CHECKS = 0;".to_string()))
|
||||
.await;
|
||||
let _ = self
|
||||
.db
|
||||
.execute(Statement::from("TRUNCATE TABLE `baker`;".to_string()))
|
||||
.await;
|
||||
let result = self
|
||||
.db
|
||||
.execute(Statement::from("TRUNCATE TABLE `bakery`;".to_string()))
|
||||
.await;
|
||||
let result = self
|
||||
.db
|
||||
.execute(Statement::from("TRUNCATE TABLE `cake`;".to_string()))
|
||||
.await;
|
||||
let result = self
|
||||
.db
|
||||
.execute(Statement::from(
|
||||
"TRUNCATE TABLE `cakes_bakers`;".to_string(),
|
||||
))
|
||||
.await;
|
||||
let result = self
|
||||
.db
|
||||
.execute(Statement::from("TRUNCATE TABLE `customer`;".to_string()))
|
||||
.await;
|
||||
let result = self
|
||||
.db
|
||||
.execute(Statement::from("TRUNCATE TABLE `order`;".to_string()))
|
||||
.await;
|
||||
let result = self
|
||||
.db
|
||||
.execute(Statement::from("TRUNCATE TABLE `lineitem`;".to_string()))
|
||||
.await;
|
||||
let _ = self
|
||||
.db
|
||||
.execute(Statement::from("SET FOREIGN_KEY_CHECKS = 1;".to_string()))
|
||||
.await;
|
||||
println!("result: {:#?}", result);
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ async fn main() {
|
||||
}
|
||||
|
||||
pub async fn test_left_join() {
|
||||
let ctx = TestContext::new("test", function!()).await;
|
||||
let ctx = TestContext::new().await;
|
||||
|
||||
let seaside_bakery = bakery::ActiveModel {
|
||||
name: Set("SeaSide Bakery".to_owned()),
|
||||
@ -30,8 +30,10 @@ pub async fn test_left_join() {
|
||||
.await
|
||||
.expect("could not find bakery");
|
||||
|
||||
// assert!(bakery.is_some());
|
||||
// let bakery_model = bakery.unwrap();
|
||||
// assert_eq!(bakery_model.name, "SeaSide Bakery");
|
||||
// assert_eq!(bakery_model.profit_margin, 10.4);
|
||||
assert!(bakery.is_some());
|
||||
let bakery_model = bakery.unwrap();
|
||||
assert_eq!(bakery_model.name, "SeaSide Bakery");
|
||||
assert_eq!(bakery_model.profit_margin, 10.4);
|
||||
|
||||
ctx.delete().await;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user