| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #![allow(dead_code)]
- use indoc::indoc;
- use pretty_assertions::assert_eq;
- use tsify::Tsify;
- #[test]
- fn test_flatten() {
- #[derive(Tsify)]
- struct A {
- a: i32,
- b: String,
- }
- #[derive(Tsify)]
- struct B {
- #[serde(flatten)]
- extra: A,
- c: i32,
- }
- assert_eq!(
- B::DECL,
- indoc! {"
- export interface B extends A {
- c: number;
- }"
- }
- );
- }
- #[test]
- fn test_flatten_option() {
- #[derive(Tsify)]
- struct A {
- a: i32,
- b: String,
- }
- #[derive(Tsify)]
- struct B {
- #[serde(flatten)]
- extra: Option<A>,
- c: i32,
- }
- assert_eq!(
- B::DECL,
- indoc! {"
- export type B = { c: number } & (A | {});"
- }
- );
- }
|