Skip to content
This repository was archived by the owner on Dec 8, 2021. It is now read-only.

Commit 0199cca

Browse files
committed
test: start coverage of core renderer module
Relates to #373
1 parent 60a8b90 commit 0199cca

File tree

2 files changed

+149
-2
lines changed

2 files changed

+149
-2
lines changed
Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
import * as Common from './common'
2+
3+
it('deepResolveInputTypes', () => {
4+
const typeMap: Common.InputTypesMap = {
5+
A: {
6+
name: 'A',
7+
type: {
8+
name: 'A',
9+
isInput: true,
10+
isEnum: false,
11+
isInterface: false,
12+
isObject: false,
13+
isScalar: false,
14+
isUnion: false,
15+
},
16+
fields: [
17+
{
18+
name: 'b',
19+
arguments: [],
20+
type: {
21+
name: 'B',
22+
isInput: true,
23+
isEnum: false,
24+
isInterface: false,
25+
isObject: false,
26+
isScalar: false,
27+
isUnion: false,
28+
isRequired: false,
29+
isArray: false,
30+
},
31+
},
32+
{
33+
name: 'c',
34+
arguments: [],
35+
type: {
36+
name: 'C',
37+
isInput: true,
38+
isEnum: false,
39+
isInterface: false,
40+
isObject: false,
41+
isScalar: false,
42+
isUnion: false,
43+
isRequired: false,
44+
isArray: false,
45+
},
46+
},
47+
],
48+
},
49+
B: {
50+
name: 'B',
51+
type: {
52+
name: 'B',
53+
isInput: true,
54+
isEnum: false,
55+
isInterface: false,
56+
isObject: false,
57+
isScalar: false,
58+
isUnion: false,
59+
},
60+
fields: [
61+
{
62+
name: 'd',
63+
arguments: [],
64+
type: {
65+
name: 'D',
66+
isInput: true,
67+
isEnum: false,
68+
isInterface: false,
69+
isObject: false,
70+
isScalar: false,
71+
isUnion: false,
72+
isRequired: false,
73+
isArray: false,
74+
},
75+
},
76+
],
77+
},
78+
C: {
79+
name: 'C',
80+
type: {
81+
name: 'C',
82+
isInput: true,
83+
isEnum: false,
84+
isInterface: false,
85+
isObject: false,
86+
isScalar: false,
87+
isUnion: false,
88+
},
89+
fields: [
90+
{
91+
name: 'd',
92+
arguments: [],
93+
type: {
94+
name: 'D',
95+
isInput: true,
96+
isEnum: false,
97+
isInterface: false,
98+
isObject: false,
99+
isScalar: false,
100+
isUnion: false,
101+
isRequired: false,
102+
isArray: false,
103+
},
104+
},
105+
],
106+
},
107+
D: {
108+
name: 'D',
109+
type: {
110+
name: 'D',
111+
isInput: true,
112+
isEnum: false,
113+
isInterface: false,
114+
isObject: false,
115+
isScalar: false,
116+
isUnion: false,
117+
},
118+
fields: [
119+
{
120+
name: 'foo',
121+
arguments: [],
122+
type: {
123+
name: 'String',
124+
isInput: false,
125+
isEnum: false,
126+
isInterface: false,
127+
isObject: false,
128+
isScalar: true,
129+
isUnion: false,
130+
isRequired: false,
131+
isArray: false,
132+
},
133+
},
134+
],
135+
},
136+
}
137+
138+
expect(Common.deepResolveInputTypes(typeMap, 'A')).toMatchInlineSnapshot(`
139+
Array [
140+
"A",
141+
"B",
142+
"D",
143+
"C",
144+
"D",
145+
]
146+
`)
147+
})

packages/graphqlgen/src/generators/common.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,10 +229,10 @@ export function getTypeFromGraphQLType(
229229
return 'string'
230230
}
231231

232-
function deepResolveInputTypes(
232+
export function deepResolveInputTypes(
233233
inputTypesMap: InputTypesMap,
234234
typeName: string,
235-
seen: { [k: string]: boolean } = {},
235+
seen: Record<string, boolean> = {},
236236
): string[] {
237237
const type = inputTypesMap[typeName]
238238
if (type) {

0 commit comments

Comments
 (0)