#![allow(dead_code)]
use openapi_schema_to_json_schema::{from_schema, Error, Options};
use serde_json::Value;
pub const DRAFT4: &str = "http://json-schema.org/draft-04/schema#";
pub fn load_fixture(name: &str) -> Value {
let path = format!("{}/tests/fixtures/{}", env!("CARGO_MANIFEST_DIR"), name);
let text = std::fs::read_to_string(&path).unwrap_or_else(|e| panic!("read {path}: {e}"));
serde_json::from_str(&text).unwrap_or_else(|e| panic!("parse {path}: {e}"))
}
pub fn assert_schema(input: Value, options: &Options, expected: Value) {
let got = from_schema(input, options).expect("conversion should succeed");
assert_eq!(got, expected);
}
pub fn assert_schema_default(input: Value, expected: Value) {
assert_schema(input, &Options::new(), expected);
}
pub fn assert_schema_err(input: Value, options: &Options, substr: &str) {
let err = from_schema(input, options).expect_err("conversion should fail");
assert!(
err.to_string().contains(substr),
"error {err:?} should contain {substr:?}"
);
}
pub fn is_invalid_type(err: &Error) -> bool {
matches!(err, Error::InvalidType(_))
}