Schema generation now never returns an error
This commit is contained in:
parent
8880fb3961
commit
5bf8b30753
18 changed files with 167 additions and 160 deletions
36
schemars/tests/dereference.rs
Normal file
36
schemars/tests/dereference.rs
Normal file
|
@ -0,0 +1,36 @@
|
|||
mod util;
|
||||
use schemars::{gen::SchemaGenerator, JsonSchema};
|
||||
use std::ptr;
|
||||
|
||||
#[test]
|
||||
fn dereference_i32() -> util::TestResult {
|
||||
let mut gen = SchemaGenerator::default();
|
||||
let i32_schema = gen.subschema_for::<i32>();
|
||||
|
||||
let dereferenced_once = gen.dereference_once(&i32_schema)?;
|
||||
assert!(ptr::eq(dereferenced_once, &i32_schema));
|
||||
|
||||
let dereferenced = gen.dereference(&i32_schema)?;
|
||||
assert!(ptr::eq(dereferenced, &i32_schema));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[derive(Debug, JsonSchema)]
|
||||
pub struct Struct {
|
||||
foo: i32,
|
||||
bar: bool,
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn dereference_struct() -> util::TestResult {
|
||||
let mut gen = SchemaGenerator::default();
|
||||
let struct_ref_schema = gen.subschema_for::<Struct>();
|
||||
let struct_schema = gen.definitions().get(&<Struct>::schema_name()).unwrap();
|
||||
|
||||
let dereferenced_once = gen.dereference_once(&struct_ref_schema)?;
|
||||
assert!(ptr::eq(dereferenced_once, struct_schema));
|
||||
|
||||
let dereferenced = gen.dereference(&struct_ref_schema)?;
|
||||
assert!(ptr::eq(dereferenced, struct_schema));
|
||||
Ok(())
|
||||
}
|
|
@ -1,7 +1,6 @@
|
|||
mod util;
|
||||
use pretty_assertions::assert_eq;
|
||||
use schemars::{schema_for, JsonSchema};
|
||||
use util::*;
|
||||
|
||||
#[derive(Debug, JsonSchema)]
|
||||
struct Flat {
|
||||
|
@ -33,9 +32,8 @@ struct Deep3 {
|
|||
}
|
||||
|
||||
#[test]
|
||||
fn flatten_schema() -> TestResult {
|
||||
let flat = schema_for!(Flat)?;
|
||||
let deep = schema_for!(Deep1)?;
|
||||
fn flatten_schema() {
|
||||
let flat = schema_for!(Flat);
|
||||
let deep = schema_for!(Deep1);
|
||||
assert_eq!(flat, deep);
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
@ -8,13 +8,13 @@ pub type TestResult = Result<(), Box<dyn Error>>;
|
|||
|
||||
#[allow(dead_code)] // https://github.com/rust-lang/rust/issues/46379
|
||||
pub fn test_generated_schema<T: JsonSchema>(file: &str, settings: SchemaSettings) -> TestResult {
|
||||
let actual = settings.into_generator().into_root_schema_for::<T>()?;
|
||||
let actual = settings.into_generator().into_root_schema_for::<T>();
|
||||
test_schema(&actual, file)
|
||||
}
|
||||
|
||||
#[allow(dead_code)] // https://github.com/rust-lang/rust/issues/46379
|
||||
pub fn test_default_generated_schema<T: JsonSchema>(file: &str) -> TestResult {
|
||||
let actual = schema_for!(T)?;
|
||||
let actual = schema_for!(T);
|
||||
test_schema(&actual, file)
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue