use wasm_bindgen::prelude::*;
use wasm_bindgen::JsCast;
use wasm_bindgen_test::*;
use super::super::testing::*;
use crate::*;
wasm_bindgen_test::wasm_bindgen_test_configure!(run_in_browser);
#[wasm_bindgen_test]
pub async fn test_table_validate_valid_expressions() {
let exprs = vec!["\"A\" * 2"];
let array = exprs.into_iter().map(JsValue::from).collect();
let table = get_mock_table().await;
let results = table.validate_expressions(array).await.unwrap();
let errors = results.errors();
let len = js_sys::Object::keys(&errors).length();
assert_eq!(len, 0);
}
#[wasm_bindgen_test]
pub async fn test_table_validate_invalid_expressions() {
let exprs = vec!["\"B\" * 2"];
let array = exprs.into_iter().map(JsValue::from).collect();
let table = get_mock_table().await;
let results = table.validate_expressions(array).await.unwrap();
let errors = results.errors();
let len = js_sys::Object::keys(&errors).length();
assert_eq!(len, 1);
}
#[wasm_bindgen_test]
pub async fn test_view_to_csv() {
let table = get_mock_table().await;
let view = table.view(json!({}).unchecked_ref()).await.unwrap();
let csv: String = view.to_csv(json!({})).await.unwrap().into();
assert_eq!(csv, "\"A\"\n1\n2\n3\n");
}
#[wasm_bindgen_test]
pub async fn test_view_num_rows() {
let table = get_mock_table().await;
let view = table.view(json!({}).unchecked_ref()).await.unwrap();
let num_rows = view.dimensions().await.unwrap().num_view_rows();
assert!(num_rows - 3_f64 < 0.01);
}