mod common;
use std::path::Path;
use tabnas_support::{find_spec_dir, Failure, Runner, Value};
use common::{parser_for, to_failure, to_json};
#[test]
fn spec() {
let dir = find_spec_dir(Some(Path::new(env!("CARGO_MANIFEST_DIR"))))
.expect("a test/spec directory above rs/");
Runner::new_with_row(|input, row| {
let raw = row.named("opts");
let options: serde_json::Value = if raw.trim().is_empty() {
serde_json::json!({})
} else {
serde_json::from_str(raw)
.map_err(|error| Failure::message(format!("opts column: {error}")))?
};
parser_for(options)
.parse(input)
.map(|value| Value::from(to_json(&value)))
.map_err(to_failure)
})
.dir(&dir);
}