Skip to content

Commit 687135f

Browse files
committed
Add namespace test
1 parent 54d2e6a commit 687135f

File tree

5 files changed

+170
-2
lines changed

5 files changed

+170
-2
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
namespace RootNamespace {
2+
export interface Def {
3+
nest: Def;
4+
prev: RootNamespace.Def;
5+
6+
propA: SubNamespace.HelperA;
7+
propB: SubNamespace.HelperB;
8+
}
9+
10+
export namespace SubNamespace {
11+
export interface HelperA {
12+
propA: number;
13+
propB: HelperB;
14+
}
15+
export interface HelperB {
16+
propA: SubNamespace.HelperA;
17+
propB: Def;
18+
}
19+
}
20+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-04/schema#",
3+
"definitions": {
4+
"RootNamespace.Def": {
5+
"type": "object",
6+
"properties": {
7+
"nest": {
8+
"$ref": "#/definitions/RootNamespace.Def"
9+
},
10+
"prev": {
11+
"$ref": "#/definitions/RootNamespace.Def"
12+
},
13+
"propA": {
14+
"$ref": "#/definitions/RootNamespace.SubNamespace.HelperA"
15+
},
16+
"propB": {
17+
"$ref": "#/definitions/RootNamespace.SubNamespace.HelperB"
18+
}
19+
},
20+
"required": [
21+
"nest",
22+
"prev",
23+
"propA",
24+
"propB"
25+
],
26+
"additionalProperties": false
27+
},
28+
"RootNamespace.SubNamespace.HelperA": {
29+
"type": "object",
30+
"properties": {
31+
"propA": {
32+
"type": "number"
33+
},
34+
"propB": {
35+
"$ref": "#/definitions/RootNamespace.SubNamespace.HelperB"
36+
}
37+
},
38+
"required": [
39+
"propA",
40+
"propB"
41+
],
42+
"additionalProperties": false
43+
},
44+
"RootNamespace.SubNamespace.HelperB": {
45+
"type": "object",
46+
"properties": {
47+
"propA": {
48+
"$ref": "#/definitions/RootNamespace.SubNamespace.HelperA"
49+
},
50+
"propB": {
51+
"$ref": "#/definitions/RootNamespace.Def"
52+
}
53+
},
54+
"required": [
55+
"propA",
56+
"propB"
57+
],
58+
"additionalProperties": false
59+
}
60+
},
61+
"$ref": "#/definitions/RootNamespace.Def"
62+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
namespace RootNamespace {
2+
export interface Def {
3+
nest: Def;
4+
prev: RootNamespace.Def;
5+
6+
propA: SubNamespace.HelperA;
7+
propB: SubNamespace.HelperB;
8+
}
9+
10+
export namespace SubNamespace {
11+
export interface HelperA {
12+
propA: number;
13+
propB: HelperB;
14+
}
15+
export interface HelperB {
16+
propA: SubNamespace.HelperA;
17+
propB: Def;
18+
}
19+
}
20+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-04/schema#",
3+
"definitions": {
4+
"RootNamespace.Def": {
5+
"type": "object",
6+
"properties": {
7+
"nest": {
8+
"$ref": "#/definitions/RootNamespace.Def"
9+
},
10+
"prev": {
11+
"$ref": "#/definitions/RootNamespace.Def"
12+
},
13+
"propA": {
14+
"$ref": "#/definitions/RootNamespace.SubNamespace.HelperA"
15+
},
16+
"propB": {
17+
"$ref": "#/definitions/RootNamespace.SubNamespace.HelperB"
18+
}
19+
},
20+
"required": [
21+
"nest",
22+
"prev",
23+
"propA",
24+
"propB"
25+
],
26+
"additionalProperties": false
27+
},
28+
"RootNamespace.SubNamespace.HelperA": {
29+
"type": "object",
30+
"properties": {
31+
"propA": {
32+
"type": "number"
33+
},
34+
"propB": {
35+
"$ref": "#/definitions/RootNamespace.SubNamespace.HelperB"
36+
}
37+
},
38+
"required": [
39+
"propA",
40+
"propB"
41+
],
42+
"additionalProperties": false
43+
},
44+
"RootNamespace.SubNamespace.HelperB": {
45+
"type": "object",
46+
"properties": {
47+
"propA": {
48+
"$ref": "#/definitions/RootNamespace.SubNamespace.HelperA"
49+
},
50+
"propB": {
51+
"$ref": "#/definitions/RootNamespace.Def"
52+
}
53+
},
54+
"required": [
55+
"propA",
56+
"propB"
57+
],
58+
"additionalProperties": false
59+
}
60+
},
61+
"$ref": "#/definitions/RootNamespace.SubNamespace.HelperA"
62+
}

test/schema.test.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,11 +173,15 @@ describe("schema", () => {
173173
assertSchema("string-literals-inline", "MyObject");
174174
});
175175

176+
describe("namspeaces", () => {
177+
assertSchema("namespace", "Type");
178+
assertSchema("namespace-deep-1", "RootNamespace.Def");
179+
assertSchema("namespace-deep-2", "RootNamespace.SubNamespace.HelperA");
180+
});
181+
176182
describe("other", () => {
177183
assertSchema("array-and-description", "MyObject");
178184

179-
assertSchema("namespace", "Type");
180-
181185
assertSchema("optionals", "MyObject");
182186

183187
assertSchema("strict-null-checks", "MyObject", undefined, {

0 commit comments

Comments
 (0)