#![cfg(test)]
use serial_test::serial;
use crate::mysql::*;
#[tokio::test]
#[serial]
async fn test_mysql_db() {
akd::test_utils::init_logger(log::Level::Info);
if AsyncMySqlDatabase::test_guard() {
if let Err(error) = AsyncMySqlDatabase::create_test_db(
"localhost",
Option::from("root"),
Option::from("example"),
Option::from(8001),
)
.await
{
panic!("Error creating test database: {}", error);
}
let mysql_db = AsyncMySqlDatabase::new(
"localhost",
"test_db",
Option::from("root"),
Option::from("example"),
Option::from(8001),
200,
)
.await
.expect("Failed to create async mysql db");
if let Err(error) = mysql_db.delete_data().await {
println!("Error cleaning mysql prior to test suite: {error}");
}
let manager = akd::storage::tests::run_test_cases_for_storage_impl(mysql_db.clone()).await;
if let Err(mysql_async::Error::Server(error)) = manager.get_db().drop_tables().await {
println!("ERROR: Failed to clean MySQL test database with error {error}");
}
} else {
println!("WARN: Skipping MySQL test due to test guard noting that the docker container appears to not be running.");
}
}