mod test_utils;
use zod::ZodType;
#[test]
fn serde_skip_enum_tuple_variant() {
test_case! {
#[derive(Debug, PartialEq, serde::Deserialize)]
enum Test {
A(#[serde(default)]String),
B(usize),
}
}
assert!(Test::schema().contains("z.string().optional()"));
assert_eq!(
Test::type_def(),
"{ A: string | undefined } | { B: number }"
);
}
#[test]
fn serde_skip_enum_struct_variant() {
test_case! {
#[derive(Debug, PartialEq, serde::Deserialize)]
enum Test {
A{
#[serde(default)]
s: String
},
B(usize),
}
}
assert!(Test::schema().contains("z.string().optional()"));
assert_eq!(
Test::type_def(),
"{ A: { s?: string | undefined } } | { B: number }"
)
}
#[test]
fn serde_skip_enum_tuple_field() {
test_case! {
#[derive(Debug, PartialEq, serde::Deserialize)]
enum Test {
A(#[serde(default)] String, usize),
B(usize),
}
}
assert!(Test::schema().contains("z.string().optional()"));
}