better tests, 2 are still failing

This commit is contained in:
filipriec
2025-03-04 19:31:32 +01:00
parent cdf49612c4
commit ec168156f8

View File

@@ -1,4 +1,4 @@
// tests/tables_data/delete_table_data_test.rs
// tests/tables_data/handlers/delete_table_data_test.rs
use rstest::{fixture, rstest};
use server::tables_data::handlers::delete_table_data;
use common::proto::multieko2::tables_data::DeleteTableDataRequest;
@@ -8,6 +8,7 @@ use tonic;
use std::sync::Arc;
use tokio::sync::Mutex;
use chrono::Utc;
use serde_json::json;
lazy_static::lazy_static! {
static ref TEST_MUTEX: Arc<Mutex<()>> = Arc::new(Mutex::new(()));
@@ -46,10 +47,29 @@ async fn existing_table(
let (pool, profile_name, profile_id) = existing_profile.await;
let table_name = format!("test_table_{}", Utc::now().timestamp_nanos_opt().unwrap_or_default());
// Define columns for the table
let columns = json!([
{
"name": "id",
"type": "SERIAL",
"primary_key": true
},
{
"name": "deleted",
"type": "BOOLEAN",
"default": false
}
]);
// Add indexes definition - this is what's missing
let indexes = json!([]); // Empty array if no indexes, but not null
sqlx::query!(
"INSERT INTO table_definitions (profile_id, table_name) VALUES ($1, $2)",
"INSERT INTO table_definitions (profile_id, table_name, columns, indexes) VALUES ($1, $2, $3, $4)",
profile_id,
table_name
table_name,
columns,
indexes
)
.execute(&pool)
.await
@@ -111,6 +131,24 @@ async fn existing_deleted_record(
(pool, profile_name, table_name, id)
}
async fn cleanup_test_data(pool: &PgPool, table_name: &str) {
// Clean up table definition
sqlx::query!(
"DELETE FROM table_definitions WHERE table_name = $1",
table_name
)
.execute(pool)
.await
.unwrap();
// Clean up physical table
let drop_table = format!(r#"DROP TABLE IF EXISTS "{}" CASCADE"#, table_name);
sqlx::query(&drop_table)
.execute(pool)
.await
.unwrap();
}
#[rstest]
#[tokio::test]
async fn test_delete_table_data_success(
@@ -137,6 +175,8 @@ async fn test_delete_table_data_success(
.unwrap();
assert!(row.get::<bool, _>("deleted"));
cleanup_test_data(&pool, &table_name).await;
}
#[rstest]
@@ -182,11 +222,13 @@ async fn test_delete_table_data_record_not_found(
let (pool, profile_name, _, table_name) = existing_table.await;
let request = DeleteTableDataRequest {
profile_name,
table_name,
table_name: table_name.clone(), // Clone here
record_id: 9999,
};
let response = delete_table_data(&pool, request).await.unwrap();
assert!(!response.success);
cleanup_test_data(&pool, &table_name).await;
}
#[rstest]
@@ -198,11 +240,13 @@ async fn test_delete_table_data_already_deleted(
let (pool, profile_name, table_name, record_id) = existing_deleted_record.await;
let request = DeleteTableDataRequest {
profile_name,
table_name,
table_name: table_name.clone(), // Clone here
record_id,
};
let response = delete_table_data(&pool, request).await.unwrap();
assert!(!response.success);
cleanup_test_data(&pool, &table_name).await;
}
#[rstest]