From 3691724218bfe1bd9fb1188e80e3e9140b9d037f Mon Sep 17 00:00:00 2001 From: Ophir LOJKINE Date: Mon, 6 Jul 2026 16:50:13 +0200 Subject: [PATCH] Move exec SQL test to dedicated Rust test --- tests/exec/exec.sql | 1 + tests/exec/mod.rs | 29 +++++++++++++++++++++++++++++ tests/mod.rs | 1 + tests/sql_test_files/data/exec.sql | 2 -- 4 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 tests/exec/exec.sql create mode 100644 tests/exec/mod.rs delete mode 100644 tests/sql_test_files/data/exec.sql diff --git a/tests/exec/exec.sql b/tests/exec/exec.sql new file mode 100644 index 00000000..2c1e8eb4 --- /dev/null +++ b/tests/exec/exec.sql @@ -0,0 +1 @@ +select sqlpage.exec($exec_program, $exec_arg1, $exec_arg2, 'It', $thisisnull, 'works', '!') as actual; diff --git a/tests/exec/mod.rs b/tests/exec/mod.rs new file mode 100644 index 00000000..6eb8fa86 --- /dev/null +++ b/tests/exec/mod.rs @@ -0,0 +1,29 @@ +use actix_web::{http::header, test::TestRequest}; +use sqlpage::webserver::http::main_handler; + +#[actix_web::test] +async fn test_exec() { + let app_data = crate::common::make_app_data().await; + let req = TestRequest::get() + .uri(exec_test_uri()) + .app_data(app_data) + .insert_header(header::Accept::json()) + .to_srv_request(); + + let resp = main_handler(req).await.unwrap(); + let body = actix_web::test::read_body(resp).await; + let rows: Vec = serde_json::from_slice(&body).unwrap(); + let actual = rows[0]["actual"].as_str().unwrap(); + + assert!(actual.contains("It works !"), "actual: {actual:?}"); +} + +#[cfg(windows)] +fn exec_test_uri() -> &'static str { + "/tests/exec/exec.sql?exec_program=cmd.exe&exec_arg1=/C&exec_arg2=echo" +} + +#[cfg(not(windows))] +fn exec_test_uri() -> &'static str { + "/tests/exec/exec.sql?exec_program=echo" +} diff --git a/tests/mod.rs b/tests/mod.rs index 09ad6b04..9fe58d3b 100644 --- a/tests/mod.rs +++ b/tests/mod.rs @@ -3,6 +3,7 @@ mod common; mod core; mod data_formats; mod errors; +mod exec; mod oidc; mod requests; mod server_timing; diff --git a/tests/sql_test_files/data/exec.sql b/tests/sql_test_files/data/exec.sql deleted file mode 100644 index cd04a5a4..00000000 --- a/tests/sql_test_files/data/exec.sql +++ /dev/null @@ -1,2 +0,0 @@ -select 'It works !' as expected_contains, - sqlpage.exec('echo', 'It', $thisisnull, 'works', '!') as actual; \ No newline at end of file