Skip to content

Commit 54f5e5e

Browse files
mrixdomoritz
authored andcommitted
Add type aliasing tests.
1 parent 2690d42 commit 54f5e5e

File tree

9 files changed

+154
-0
lines changed

9 files changed

+154
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
2+
interface MyObject {
3+
number: number;
4+
string: string;
5+
}
6+
7+
type MyAlias = MyObject;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-04/schema#",
3+
"definitions": {
4+
"MyObject": {
5+
"type": "object",
6+
"properties": {
7+
"number": {
8+
"type": "number"
9+
},
10+
"string": {
11+
"type": "string"
12+
}
13+
},
14+
"required": [
15+
"number",
16+
"string"
17+
]
18+
}
19+
},
20+
"$ref": "#/definitions/MyObject"
21+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
2+
interface MyObject {
3+
number: number;
4+
string: string;
5+
}
6+
7+
type MyAlias = MyObject;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-04/schema#",
3+
"properties": {
4+
"number": {
5+
"type": "number"
6+
},
7+
"string": {
8+
"type": "string"
9+
}
10+
},
11+
"required": [
12+
"number",
13+
"string"
14+
],
15+
"type": "object"
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
2+
interface MyObject {
3+
alias: MyAlias;
4+
self: MyObject;
5+
}
6+
7+
type MyAlias = MyObject;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-04/schema#",
3+
"definitions": {
4+
"MyAlias": {
5+
"properties": {
6+
"alias": {
7+
"$ref": "#/definitions/MyAlias"
8+
},
9+
"self": {
10+
"$ref": "#/definitions/MyObject"
11+
}
12+
},
13+
"required": [
14+
"alias",
15+
"self"
16+
],
17+
"type": "object"
18+
},
19+
"MyObject": {
20+
"properties": {
21+
"alias": {
22+
"$ref": "#/definitions/MyAlias"
23+
},
24+
"self": {
25+
"$ref": "#/definitions/MyObject"
26+
}
27+
},
28+
"required": [
29+
"alias",
30+
"self"
31+
],
32+
"type": "object"
33+
}
34+
},
35+
"$ref": "#/definitions/MyObject"
36+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
2+
interface MyObject {
3+
alias: MyAlias;
4+
self: MyObject;
5+
}
6+
7+
type MyAlias = MyObject;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-04/schema#",
3+
"definitions": {
4+
"MyAlias": {
5+
"properties": {
6+
"alias": {
7+
"$ref": "#/definitions/MyAlias"
8+
},
9+
"self": {
10+
"$ref": "#/definitions/MyObject"
11+
}
12+
},
13+
"required": [
14+
"alias",
15+
"self"
16+
],
17+
"type": "object"
18+
},
19+
"MyObject": {
20+
"properties": {
21+
"alias": {
22+
"$ref": "#/definitions/MyAlias"
23+
},
24+
"self": {
25+
"$ref": "#/definitions/MyObject"
26+
}
27+
},
28+
"required": [
29+
"alias",
30+
"self"
31+
],
32+
"type": "object"
33+
}
34+
},
35+
"$ref": "#/definitions/MyObject"
36+
}

test/schema.test.ts

+17
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,23 @@ describe("schema", function () {
7676
useTypeAliasRef: true
7777
});
7878

79+
assertSchema("type-aliases-alias-ref", "main.ts", "MyAlias", {
80+
useTypeAliasRef: true,
81+
useRootRef: false
82+
});
83+
assertSchema("type-aliases-alias-ref-topref", "main.ts", "MyAlias", {
84+
useTypeAliasRef: true,
85+
useRootRef: true
86+
});
87+
assertSchema("type-aliases-recursive-object-topref", "main.ts", "MyObject", {
88+
useTypeAliasRef: true,
89+
useRootRef: true
90+
});
91+
assertSchema("type-aliases-recursive-alias-topref", "main.ts", "MyAlias", {
92+
useTypeAliasRef: true,
93+
useRootRef: true
94+
});
95+
7996
assertSchema("type-anonymous", "main.ts", "MyObject");
8097
assertSchema("type-primitives", "main.ts", "MyObject");
8198
assertSchema("type-nullable", "main.ts", "MyObject");

0 commit comments

Comments
 (0)