Skip to content

Commit 6543f0b

Browse files
committed
chore: add extra tests for nullable and enums
1 parent be3b608 commit 6543f0b

File tree

13 files changed

+401
-2
lines changed

13 files changed

+401
-2
lines changed

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@
5353
"test:partialDefaultTemplate": "node tests/spec/partialDefaultTemplate/test.js",
5454
"test:--patch": "node tests/spec/patch/test.js",
5555
"test:deprecated": "node tests/spec/deprecated/test.js",
56-
"test:nullableRefTest": "node tests/spec/nullable/test.js"
56+
"test:nullableRefTest3.0": "node tests/spec/nullable-3.0/test.js",
57+
"test:nullableRefTest2.0": "node tests/spec/nullable-2.0/test.js",
58+
"test:enums2.0": "node tests/spec/enums-2.0/test.js"
5759
},
5860
"author": "acacode",
5961
"license": "MIT",

tests/spec/enums-2.0/expected.ts

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/* eslint-disable */
2+
/* tslint:disable */
3+
/*
4+
* ---------------------------------------------------------------
5+
* ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##
6+
* ## ##
7+
* ## AUTHOR: acacode ##
8+
* ## SOURCE: https://github.com/acacode/swagger-typescript-api ##
9+
* ---------------------------------------------------------------
10+
*/
11+
12+
export enum OnlyEnumNames {
13+
Bla = "Bla",
14+
Blabla = "Blabla",
15+
Boiler = "Boiler",
16+
}
17+
18+
export enum StringOnlyEnumNames {
19+
Bla = "Bla",
20+
Blabla = "Blabla",
21+
Boiler = "Boiler",
22+
}
23+
24+
export enum StringEnums {
25+
Bla = "foo",
26+
Blabla = "bar",
27+
Boiler = "Boiler",
28+
}
29+
30+
export enum StringCompleteEnums {
31+
Bla = "foo",
32+
Blabla = "bar",
33+
Boiler = "baz",
34+
}
35+
36+
/** @format int32 */
37+
export enum EmptyEnum {
38+
Bla = "Bla",
39+
Blabla = "Blabla",
40+
Boiler = "Boiler",
41+
}
42+
43+
/** @format int32 */
44+
export enum EnumWithMoreNames {
45+
Bla = 1,
46+
Blabla = "Blabla",
47+
Boiler = "Boiler",
48+
}
49+
50+
/** @format int32 */
51+
export enum SomeInterestEnum {
52+
Bla = 6,
53+
Blabla = 2,
54+
Boiler = 1,
55+
Bbabab = 67,
56+
Nowadays = 88,
57+
FAIL = 122,
58+
Vvvvv = 88,
59+
ASdasAS = 0,
60+
ASDsacZX = 213,
61+
Zook = 12378,
62+
EnumMm = 123125,
63+
VCsa = 32452,
64+
Yuuu = 1111,
65+
ASddd = 66666,
66+
ASdsdsa = "ASdsdsa",
67+
ASDds = "ASDds",
68+
HSDFDS = "HSDFDS",
69+
}

tests/spec/enums-2.0/schema.json

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{
2+
"swagger": "2.0",
3+
"schemes": ["https"],
4+
"host": "ffff.com",
5+
"basePath": "/",
6+
"info": {},
7+
"definitions": {
8+
"OnlyEnumNames": {
9+
"x-enumNames": ["Bla", "Blabla", "Boiler"]
10+
},
11+
"StringOnlyEnumNames": {
12+
"type": "int32",
13+
"x-enumNames": ["Bla", "Blabla", "Boiler"]
14+
},
15+
"StringEnums": {
16+
"type": "int32",
17+
"enum": ["foo", "bar"],
18+
"x-enumNames": ["Bla", "Blabla", "Boiler"]
19+
},
20+
"StringCompleteEnums": {
21+
"type": "int32",
22+
"enum": ["foo", "bar", "baz"],
23+
"x-enumNames": ["Bla", "Blabla", "Boiler"]
24+
},
25+
"EmptyEnum": {
26+
"format": "int32",
27+
"type": "integer",
28+
"x-enumNames": ["Bla", "Blabla", "Boiler"]
29+
},
30+
"EnumWithMoreNames": {
31+
"format": "int32",
32+
"type": "integer",
33+
"enum": [1],
34+
"x-enumNames": ["Bla", "Blabla", "Boiler"]
35+
},
36+
"SomeInterestEnum": {
37+
"format": "int32",
38+
"enum": [6, 2, 1, 67, 88, 122, 88, 0, 213, 12378, 123125, 32452, 1111, 66666],
39+
"type": "integer",
40+
"x-enumNames": [
41+
"Bla",
42+
"Blabla",
43+
"Boiler",
44+
"Bbabab",
45+
"Nowadays",
46+
"FAIL",
47+
"Vvvvv",
48+
"ASdasAS",
49+
"ASDsacZX",
50+
"Zook",
51+
"EnumMm",
52+
"VCsa",
53+
"Yuuu",
54+
"ASddd",
55+
"ASdsdsa",
56+
"ASDds",
57+
"HSDFDS"
58+
]
59+
}
60+
}
61+
}

tests/spec/enums-2.0/schema.ts

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/* eslint-disable */
2+
/* tslint:disable */
3+
/*
4+
* ---------------------------------------------------------------
5+
* ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##
6+
* ## ##
7+
* ## AUTHOR: acacode ##
8+
* ## SOURCE: https://github.com/acacode/swagger-typescript-api ##
9+
* ---------------------------------------------------------------
10+
*/
11+
12+
export enum OnlyEnumNames {
13+
Bla = "Bla",
14+
Blabla = "Blabla",
15+
Boiler = "Boiler",
16+
}
17+
18+
export enum StringOnlyEnumNames {
19+
Bla = "Bla",
20+
Blabla = "Blabla",
21+
Boiler = "Boiler",
22+
}
23+
24+
export enum StringEnums {
25+
Bla = "foo",
26+
Blabla = "bar",
27+
Boiler = "Boiler",
28+
}
29+
30+
export enum StringCompleteEnums {
31+
Bla = "foo",
32+
Blabla = "bar",
33+
Boiler = "baz",
34+
}
35+
36+
/** @format int32 */
37+
export enum EmptyEnum {
38+
Bla = "Bla",
39+
Blabla = "Blabla",
40+
Boiler = "Boiler",
41+
}
42+
43+
/** @format int32 */
44+
export enum EnumWithMoreNames {
45+
Bla = 1,
46+
Blabla = "Blabla",
47+
Boiler = "Boiler",
48+
}
49+
50+
/** @format int32 */
51+
export enum SomeInterestEnum {
52+
Bla = 6,
53+
Blabla = 2,
54+
Boiler = 1,
55+
Bbabab = 67,
56+
Nowadays = 88,
57+
FAIL = 122,
58+
Vvvvv = 88,
59+
ASdasAS = 0,
60+
ASDsacZX = 213,
61+
Zook = 12378,
62+
EnumMm = 123125,
63+
VCsa = 32452,
64+
Yuuu = 1111,
65+
ASddd = 66666,
66+
ASdsdsa = "ASdsdsa",
67+
ASDds = "ASDds",
68+
HSDFDS = "HSDFDS",
69+
}

tests/spec/enums-2.0/test.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
const { generateApiForTest } = require("../../helpers/generateApiForTest");
2+
const { resolve } = require("path");
3+
const validateGeneratedModule = require("../../helpers/validateGeneratedModule");
4+
const createSchemaInfos = require("../../helpers/createSchemaInfos");
5+
const assertGeneratedModule = require("../../helpers/assertGeneratedModule");
6+
7+
const schemas = createSchemaInfos({ absolutePathToSchemas: resolve(__dirname, "./") });
8+
9+
schemas.forEach(({ absolutePath, apiFileName }) => {
10+
generateApiForTest({
11+
testName: "enums-2.0 option test",
12+
silent: true,
13+
name: apiFileName,
14+
input: absolutePath,
15+
output: resolve(__dirname, "./"),
16+
generateClient: false,
17+
}).then(() => {
18+
validateGeneratedModule(resolve(__dirname, `./${apiFileName}`));
19+
assertGeneratedModule(resolve(__dirname, `./${apiFileName}`), resolve(__dirname, `./expected.ts`));
20+
});
21+
});

tests/spec/nullable-2.0/expected.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/* eslint-disable */
2+
/* tslint:disable */
3+
/*
4+
* ---------------------------------------------------------------
5+
* ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##
6+
* ## ##
7+
* ## AUTHOR: acacode ##
8+
* ## SOURCE: https://github.com/acacode/swagger-typescript-api ##
9+
* ---------------------------------------------------------------
10+
*/
11+
12+
export type MyObject = {
13+
id: string;
14+
name: string;
15+
} | null;
16+
17+
export interface TestObject {
18+
stringMaybeUndefined?: string;
19+
stringMaybeNullA?: string | null;
20+
stringMaybeNullB?: null;
21+
stringMaybeNullAndUndefined?: null;
22+
otherObjectMaybeUndefined?: OtherObject;
23+
otherObjectMaybeNullA?: OtherObject | null;
24+
otherObjectMaybeNullB?: OtherObject | null;
25+
otherObjectMaybeNullC?: OtherObject | null;
26+
otherObjectMaybeNullD: OtherObject;
27+
}
28+
29+
export type OtherObject = object;

tests/spec/nullable-2.0/schema.json

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
{
2+
"swagger": "2.0",
3+
"schemes": ["https"],
4+
"host": "ffff.com",
5+
"basePath": "/",
6+
"info": {},
7+
"definitions": {
8+
"myObject": {
9+
"type": "object",
10+
"nullable": true,
11+
"properties": {
12+
"id": {
13+
"type": "string"
14+
},
15+
"name": {
16+
"type": "string"
17+
}
18+
},
19+
"required": [
20+
"id",
21+
"name"
22+
]
23+
},
24+
"TestObject": {
25+
"type": "object",
26+
"properties": {
27+
"stringMaybeUndefined": {
28+
"type": "string"
29+
},
30+
"stringMaybeNullA": {
31+
"type": "string",
32+
"nullable": true
33+
},
34+
"stringMaybeNullB": {
35+
"anyOf": [
36+
{
37+
"type": "string"
38+
}
39+
],
40+
"nullable": true
41+
},
42+
"stringMaybeNullAndUndefined": {
43+
"anyOf": [
44+
{
45+
"type": "string"
46+
}
47+
],
48+
"nullable": true
49+
},
50+
"otherObjectMaybeUndefined": {
51+
"$ref": "#/components/schemas/OtherObject"
52+
},
53+
"otherObjectMaybeNullA": {
54+
"$ref": "#/components/schemas/OtherObject",
55+
"nullable": true
56+
},
57+
"otherObjectMaybeNullB": {
58+
"anyOf": [
59+
{
60+
"$ref": "#/components/schemas/OtherObject"
61+
}
62+
],
63+
"nullable": true
64+
},
65+
"otherObjectMaybeNullC": {
66+
"anyOf": [
67+
{
68+
"$ref": "#/components/schemas/OtherObject"
69+
}
70+
],
71+
"type": "null"
72+
},
73+
"otherObjectMaybeNullD": {
74+
"anyOf": [
75+
{
76+
"$ref": "#/components/schemas/OtherObject"
77+
},
78+
{
79+
"type": "null"
80+
}
81+
]
82+
}
83+
},
84+
"required": [
85+
"stringMaybeNullA",
86+
"stringMaybeNullB",
87+
"otherObjectMaybeNullA",
88+
"otherObjectMaybeNullB",
89+
"otherObjectMaybeNullC",
90+
"otherObjectMaybeNullD"
91+
]
92+
},
93+
"OtherObject": {
94+
"type": "object"
95+
}
96+
}
97+
}

tests/spec/nullable-2.0/schema.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/* eslint-disable */
2+
/* tslint:disable */
3+
/*
4+
* ---------------------------------------------------------------
5+
* ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ##
6+
* ## ##
7+
* ## AUTHOR: acacode ##
8+
* ## SOURCE: https://github.com/acacode/swagger-typescript-api ##
9+
* ---------------------------------------------------------------
10+
*/
11+
12+
export type MyObject = {
13+
id: string;
14+
name: string;
15+
} | null;
16+
17+
export interface TestObject {
18+
stringMaybeUndefined?: string;
19+
stringMaybeNullA?: string | null;
20+
stringMaybeNullB?: null;
21+
stringMaybeNullAndUndefined?: null;
22+
otherObjectMaybeUndefined?: OtherObject;
23+
otherObjectMaybeNullA?: OtherObject | null;
24+
otherObjectMaybeNullB?: OtherObject | null;
25+
otherObjectMaybeNullC?: OtherObject | null;
26+
otherObjectMaybeNullD: OtherObject;
27+
}
28+
29+
export type OtherObject = object;

0 commit comments

Comments
 (0)