Add test files: integration, conversion, validation tests
This commit is contained in:
55
tests/validation_tests.rs
Normal file
55
tests/validation_tests.rs
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use config_forge::convert::infer_schema;
|
||||||
|
use serde_json::json;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_infer_schema_string() {
|
||||||
|
let value = json!("test");
|
||||||
|
let schema = infer_schema(&value);
|
||||||
|
assert_eq!(schema["type"], "string");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_infer_schema_number() {
|
||||||
|
let value = json!(42);
|
||||||
|
let schema = infer_schema(&value);
|
||||||
|
assert_eq!(schema["type"], "integer");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_infer_schema_boolean() {
|
||||||
|
let value = json!(true);
|
||||||
|
let schema = infer_schema(&value);
|
||||||
|
assert_eq!(schema["type"], "boolean");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_infer_schema_object() {
|
||||||
|
let value = json!({"name": "test", "value": 42});
|
||||||
|
let schema = infer_schema(&value);
|
||||||
|
assert_eq!(schema["type"], "object");
|
||||||
|
assert!(schema["properties"].is_object());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_infer_schema_array() {
|
||||||
|
let value = json!([1, 2, 3]);
|
||||||
|
let schema = infer_schema(&value);
|
||||||
|
assert_eq!(schema["type"], "array");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_infer_schema_nested() {
|
||||||
|
let value = json!({
|
||||||
|
"user": {
|
||||||
|
"name": "test",
|
||||||
|
"age": 30
|
||||||
|
}
|
||||||
|
});
|
||||||
|
let schema = infer_schema(&value);
|
||||||
|
assert_eq!(schema["type"], "object");
|
||||||
|
let props = schema["properties"].as_object().unwrap();
|
||||||
|
assert!(props.contains_key("user"));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user