Merge tests to one

This commit is contained in:
Simon Sawert 2025-08-21 13:51:47 +02:00
parent 1d7fffc121
commit 4dd2f0ca5e
No known key found for this signature in database

View file

@ -4615,8 +4615,8 @@ fn test_drop_constraints() {
} }
#[test] #[test]
fn test_semantic_view_all_variants_should_pass() { fn test_semantic_view() {
let test_cases = [ let valid_sqls = [
("SELECT * FROM SEMANTIC_VIEW(model)", None), ("SELECT * FROM SEMANTIC_VIEW(model)", None),
( (
"SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS dim1, dim2)", "SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS dim1, dim2)",
@ -4666,7 +4666,7 @@ fn test_semantic_view_all_variants_should_pass() {
), ),
]; ];
for (input_sql, expected_sql) in test_cases { for (input_sql, expected_sql) in valid_sqls {
if let Some(expected) = expected_sql { if let Some(expected) = expected_sql {
// Test that non-canonical order gets normalized // Test that non-canonical order gets normalized
let parsed = snowflake().parse_sql_statements(input_sql).unwrap(); let parsed = snowflake().parse_sql_statements(input_sql).unwrap();
@ -4676,10 +4676,7 @@ fn test_semantic_view_all_variants_should_pass() {
snowflake().verified_stmt(input_sql); snowflake().verified_stmt(input_sql);
} }
} }
}
#[test]
fn test_semantic_view_invalid_queries_should_fail() {
let invalid_sqls = [ let invalid_sqls = [
"SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS dim1 INVALID inv1)", "SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS dim1 INVALID inv1)",
"SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS dim1 DIMENSIONS dim2)", "SELECT * FROM SEMANTIC_VIEW(model DIMENSIONS dim1 DIMENSIONS dim2)",
@ -4690,18 +4687,15 @@ fn test_semantic_view_invalid_queries_should_fail() {
let result = snowflake().parse_sql_statements(sql); let result = snowflake().parse_sql_statements(sql);
assert!(result.is_err(), "Expected error for invalid SQL: {}", sql); assert!(result.is_err(), "Expected error for invalid SQL: {}", sql);
} }
}
#[test] let ast_sql = r#"SELECT * FROM SEMANTIC_VIEW(
fn test_semantic_view_ast_structure() {
let sql = r#"SELECT * FROM SEMANTIC_VIEW(
my_model my_model
DIMENSIONS DATE_PART('year', date_col), region_name DIMENSIONS DATE_PART('year', date_col), region_name
METRICS orders.revenue, orders.count METRICS orders.revenue, orders.count
WHERE active = true WHERE active = true
) AS model_alias"#; ) AS model_alias"#;
let stmt = snowflake().parse_sql_statements(sql).unwrap(); let stmt = snowflake().parse_sql_statements(ast_sql).unwrap();
match &stmt[0] { match &stmt[0] {
Statement::Query(q) => { Statement::Query(q) => {
if let SetExpr::Select(select) = q.body.as_ref() { if let SetExpr::Select(select) = q.body.as_ref() {