From 2aa1835240fdec48de25d18a1605ea262d08b1a0 Mon Sep 17 00:00:00 2001 From: Graham Esau Date: Tue, 6 Aug 2019 18:57:36 +0100 Subject: [PATCH] Add test for flattened structs (currently ignored) --- schemars/tests/flatten.rs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 schemars/tests/flatten.rs 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)); +}