| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- #![allow(dead_code)]
- use indoc::indoc;
- use pretty_assertions::assert_eq;
- use tsify::Tsify;
- #[test]
- fn test_rename() {
- #[derive(Tsify)]
- struct RenamedStruct {
- #[serde(rename = "X")]
- x: i32,
- #[serde(rename = "Y")]
- y: i32,
- }
- assert_eq!(
- RenamedStruct::DECL,
- indoc! {"
- export interface RenamedStruct {
- X: number;
- Y: number;
- }"
- }
- );
- #[derive(Tsify)]
- enum RenamedEnum {
- #[serde(rename = "X")]
- A(bool),
- #[serde(rename = "Y")]
- B(i64),
- #[serde(rename = "Z")]
- C(String),
- #[serde(skip)]
- D(i32),
- }
- let expected = indoc! {r#"
- export type RenamedEnum = { X: boolean } | { Y: number } | { Z: string };"#
- };
- assert_eq!(RenamedEnum::DECL, expected);
- }
- #[test]
- fn test_rename_all() {
- #[allow(clippy::enum_variant_names)]
- #[derive(Tsify)]
- #[serde(rename_all = "snake_case")]
- #[tsify(namespace)]
- enum Enum {
- SnakeCase {
- foo: bool,
- foo_bar: bool,
- },
- #[serde(rename_all = "camelCase")]
- CamelCase {
- foo: bool,
- foo_bar: bool,
- },
- #[serde(rename_all = "kebab-case")]
- KebabCase {
- foo: bool,
- foo_bar: bool,
- },
- #[serde(rename_all = "SCREAMING_SNAKE_CASE")]
- ScreamingSnakeCase {
- foo: bool,
- foo_bar: bool,
- },
- }
- #[derive(Tsify)]
- #[serde(rename_all = "PascalCase")]
- struct PascalCase {
- foo: bool,
- foo_bar: bool,
- }
- #[derive(Tsify)]
- #[serde(rename_all = "SCREAMING-KEBAB-CASE")]
- struct ScreamingKebab {
- foo: bool,
- foo_bar: bool,
- }
- let expected = indoc! {r#"
- declare namespace Enum {
- export type snake_case = { snake_case: { foo: boolean; foo_bar: boolean } };
- export type camel_case = { camel_case: { foo: boolean; fooBar: boolean } };
- export type kebab_case = { kebab_case: { foo: boolean; "foo-bar": boolean } };
- export type screaming_snake_case = { screaming_snake_case: { FOO: boolean; FOO_BAR: boolean } };
- }
-
- export type Enum = { snake_case: { foo: boolean; foo_bar: boolean } } | { camel_case: { foo: boolean; fooBar: boolean } } | { kebab_case: { foo: boolean; "foo-bar": boolean } } | { screaming_snake_case: { FOO: boolean; FOO_BAR: boolean } };"#
- };
- assert_eq!(Enum::DECL, expected);
- assert_eq!(
- PascalCase::DECL,
- indoc! {"
- export interface PascalCase {
- Foo: boolean;
- FooBar: boolean;
- }"
- }
- );
- assert_eq!(
- ScreamingKebab::DECL,
- indoc! {r#"
- export interface ScreamingKebab {
- FOO: boolean;
- "FOO-BAR": boolean;
- }"#
- }
- );
- }
|