#![allow(deprecated)]
use crate::prelude::*;
use pretty_assertions::assert_eq;
#[derive(JsonSchema, Default, Serialize, Deserialize)]
#[deprecated]
struct DeprecatedStruct {
foo: i32,
#[deprecated]
bar: bool,
}
#[allow(deprecated)]
#[test]
fn deprecated_struct() {
test!(DeprecatedStruct)
.assert_snapshot()
.assert_allows_ser_roundtrip_default()
.custom(|schema, _| {
assert_eq!(
schema.as_value().pointer("/deprecated"),
Some(&Value::Bool(true)),
);
assert_eq!(
schema.as_value().pointer("/properties/bar/deprecated"),
Some(&Value::Bool(true)),
);
});
}
#[derive(JsonSchema, Default, Serialize, Deserialize)]
#[deprecated]
enum DeprecatedEnum {
#[default]
Unit,
#[deprecated]
DeprecatedUnitVariant,
#[deprecated]
DeprecatedStructVariant {
foo: i32,
#[deprecated]
deprecated_field: bool,
},
}
#[test]
fn deprecated_enum() {
test!(DeprecatedEnum)
.assert_snapshot()
.assert_allows_ser_roundtrip_default()
.custom(|schema, _| {
assert_eq!(
schema.as_value().pointer("/deprecated"),
Some(&Value::Bool(true)),
);
assert_eq!(
schema.as_value().pointer("/oneOf/1/deprecated"),
Some(&Value::Bool(true)),
);
assert_eq!(
schema.as_value().pointer("/oneOf/2/deprecated"),
Some(&Value::Bool(true)),
);
assert_eq!(
schema.as_value().pointer("/oneOf/2/properties/DeprecatedStructVariant/properties/deprecated_field/deprecated"),
Some(&Value::Bool(true)),
);
});
}