diff --git a/schemars/tests/flatten.rs b/schemars/tests/flatten.rs new file mode 100644 index 0000000..9ad3812 --- /dev/null +++ b/schemars/tests/flatten.rs @@ -0,0 +1,37 @@ +use pretty_assertions::assert_eq; +use schemars::{schema_for, MakeSchema}; +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, Debug, PartialEq, MakeSchema)] +struct Flat { + foo: f32, + bar: bool, + baz: String, + foobar: Vec, +} + +#[derive(Serialize, Deserialize, Debug, PartialEq, MakeSchema)] +struct Deep1 { + foo: f32, + #[serde(flatten)] + deep2: Deep2, + foobar: Vec, +} + +#[derive(Serialize, Deserialize, Debug, PartialEq, MakeSchema)] +struct Deep2 { + bar: bool, + #[serde(flatten)] + deep3: Deep3, +} + +#[derive(Serialize, Deserialize, Debug, PartialEq, MakeSchema)] +struct Deep3 { + baz: String, +} + +#[test] +#[ignore = "flattening is not yet implemented"] +fn flatten_schema() { + assert_eq!(schema_for!(Flat), schema_for!(Deep1)); +}