#![allow(dead_code)]
use indoc::indoc;
use pretty_assertions::assert_eq;
use tsify_next::Tsify;
#[test]
fn test_prefix() {
type MyType = u32;
#[derive(Tsify)]
#[tsify(type_prefix = "Special")]
struct PrefixedStruct {
x: u32,
y: MyType,
}
assert_eq!(
PrefixedStruct::DECL,
indoc! {"
export interface SpecialPrefixedStruct {
x: number;
y: SpecialMyType;
}"
}
);
#[derive(Tsify)]
#[tsify(type_prefix = "Special")]
enum PrefixedEnum {
VariantA(MyType),
VariantB(u32),
}
assert_eq!(
PrefixedEnum::DECL,
indoc! {"
export type SpecialPrefixedEnum = { VariantA: SpecialMyType } | { VariantB: number };"
}
);
}
#[test]
fn test_suffix() {
type MyType = u32;
#[derive(Tsify)]
#[tsify(type_suffix = "Special")]
struct SuffixedStruct {
x: u32,
y: MyType,
}
assert_eq!(
SuffixedStruct::DECL,
indoc! {"
export interface SuffixedStructSpecial {
x: number;
y: MyTypeSpecial;
}"
}
);
#[derive(Tsify)]
#[tsify(type_suffix = "Special")]
enum SuffixedEnum {
VariantA(MyType),
VariantB(u32),
}
assert_eq!(
SuffixedEnum::DECL,
indoc! {"
export type SuffixedEnumSpecial = { VariantA: MyTypeSpecial } | { VariantB: number };"
}
);
}
#[test]
fn test_prefix_suffix() {
type MyType = u32;
#[derive(Tsify)]
#[tsify(type_prefix = "Pre", type_suffix = "Suf")]
struct DoubleAffixedStruct {
x: u32,
y: MyType,
}
assert_eq!(
DoubleAffixedStruct::DECL,
indoc! {"
export interface PreDoubleAffixedStructSuf {
x: number;
y: PreMyTypeSuf;
}"
}
);
#[derive(Tsify)]
#[tsify(type_prefix = "Pre", type_suffix = "Suf")]
enum DoubleAffixedEnum {
VariantA(MyType),
VariantB(u32),
}
assert_eq!(
DoubleAffixedEnum::DECL,
indoc! {"
export type PreDoubleAffixedEnumSuf = { VariantA: PreMyTypeSuf } | { VariantB: number };"
}
);
}