mirror of
https://github.com/storytold/gridcraft.git
synced 2026-10-25 11:16:49 -06:00
Found while testing crates/engine/src/cmd/pivot.rs:678 (func_param at :248) Co-authored-by: Claude Haiku 5.5 <noreply@anthropic.com>
34 lines
1.1 KiB
Rust
34 lines
1.1 KiB
Rust
use gridcraft_engine::Session;
|
|
use serde_json::json;
|
|
|
|
fn session() -> Session {
|
|
let mut s = Session::new();
|
|
s.new_workbook();
|
|
s.execute("range.setValues", json!({"range":"A1", "values":[["Region", "Sales"], ["East", "10"], ["East", "2"], ["West", "4"]]})).unwrap();
|
|
s
|
|
}
|
|
|
|
#[test]
|
|
fn insert_pivot_table_rejects_unknown_func() {
|
|
for func in ["stdev", "sumx"] {
|
|
let mut s = session();
|
|
let r = s.execute(
|
|
"insert.pivotTable",
|
|
json!({"source":"Sheet1!A1:B4", "destination":"Sheet1!F1", "rows":["Region"], "values":[{"field":"Sales", "func":func}]}),
|
|
);
|
|
assert!(r.is_err(), "unknown func `{func}` accepted silently");
|
|
assert!(s.doc().unwrap().wb.active().unwrap().pivots.is_empty());
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn insert_pivot_table_accepts_known_func() {
|
|
let mut s = session();
|
|
s.execute(
|
|
"insert.pivotTable",
|
|
json!({"source":"Sheet1!A1:B4", "destination":"Sheet1!F1", "rows":["Region"], "values":[{"field":"Sales", "func":"stddev"}]}),
|
|
)
|
|
.unwrap();
|
|
assert_eq!(s.doc().unwrap().wb.active().unwrap().pivots.len(), 1);
|
|
}
|