mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
drop the test postgres databse after each test
This commit is contained in:
@ -129,9 +129,10 @@ impl TestApp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub async fn spawn_app() -> TestApp {
|
pub async fn spawn_app() -> TestApp {
|
||||||
|
let database_name = format!("{}", Uuid::new_v4().to_string());
|
||||||
let configuration = {
|
let configuration = {
|
||||||
let mut c = get_configuration().expect("Failed to read configuration.");
|
let mut c = get_configuration().expect("Failed to read configuration.");
|
||||||
c.database.database_name = Uuid::new_v4().to_string();
|
c.database.database_name = database_name.clone();
|
||||||
// Use a random OS port
|
// Use a random OS port
|
||||||
c.application.port = 0;
|
c.application.port = 0;
|
||||||
c
|
c
|
||||||
@ -143,7 +144,10 @@ pub async fn spawn_app() -> TestApp {
|
|||||||
.expect("Failed to build application.");
|
.expect("Failed to build application.");
|
||||||
let application_port = application.port();
|
let application_port = application.port();
|
||||||
|
|
||||||
let _ = tokio::spawn(application.run_until_stopped());
|
let _ = tokio::spawn(async {
|
||||||
|
let _ = application.run_until_stopped();
|
||||||
|
drop_test_database(database_name).await;
|
||||||
|
});
|
||||||
|
|
||||||
TestApp {
|
TestApp {
|
||||||
address: format!("http://localhost:{}", application_port),
|
address: format!("http://localhost:{}", application_port),
|
||||||
@ -176,3 +180,21 @@ async fn configure_database(config: &DatabaseSettings) -> PgPool {
|
|||||||
|
|
||||||
connection_pool
|
connection_pool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn drop_test_database(database_name: String) {
|
||||||
|
let configuration = {
|
||||||
|
let mut c = get_configuration().expect("Failed to read configuration.");
|
||||||
|
c.database.database_name = "flowy".to_owned();
|
||||||
|
c.application.port = 0;
|
||||||
|
c
|
||||||
|
};
|
||||||
|
|
||||||
|
let mut connection = PgConnection::connect_with(&configuration.database.without_db())
|
||||||
|
.await
|
||||||
|
.expect("Failed to connect to Postgres");
|
||||||
|
|
||||||
|
connection
|
||||||
|
.execute(&*format!(r#"Drop DATABASE "{}";"#, database_name))
|
||||||
|
.await
|
||||||
|
.expect("Failed to drop database.");
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user