Skip to content

Commit 4faad5d

Browse files
committed
fix(Flowtype): make strict type checks
1 parent dfb412e commit 4faad5d

20 files changed

+96
-141
lines changed

src/__tests__/composeWithMongoose-test.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,8 @@ describe('composeWithMongoose ->', () => {
4545
});
4646

4747
it('should have NonNull _id field', () => {
48-
const tc = composeWithMongoose(UserModel);
48+
const tc: any = composeWithMongoose(UserModel);
4949
expect(tc.getFieldType('_id')).toBeInstanceOf(GraphQLNonNull);
50-
// $FlowFixMe
5150
expect(tc.getFieldType('_id').ofType).toBe(GraphQLMongoID);
5251
});
5352
});
@@ -204,8 +203,7 @@ describe('composeWithMongoose ->', () => {
204203
},
205204
},
206205
});
207-
const filterArgInFindOne = typeComposer.getResolver('findOne').getArg('filter');
208-
// $FlowFixMe
206+
const filterArgInFindOne: any = typeComposer.getResolver('findOne').getArg('filter');
209207
const inputConposer = new InputTypeComposer(filterArgInFindOne.type);
210208
expect(inputConposer.isRequired('age')).toBe(true);
211209
});

src/__tests__/fieldConverter-test.js

Lines changed: 22 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ beforeAll(() => UserModel.base.connect());
3333
afterAll(() => UserModel.base.disconnect());
3434

3535
describe('fieldConverter', () => {
36-
const fields = getFieldsFromModel(UserModel);
36+
const fields: { [key: string]: any } = getFieldsFromModel(UserModel);
3737
const fieldNames = Object.keys(fields);
3838

3939
describe('getFieldsFromModel()', () => {
@@ -48,12 +48,12 @@ describe('fieldConverter', () => {
4848

4949
it('should throw Exception, if model does `schema.path` property', () => {
5050
expect(() => {
51-
// $FlowFixMe
52-
getFieldsFromModel({ a: 1 });
51+
const wrongArgs: any = [{ a: 1 }];
52+
getFieldsFromModel(...wrongArgs);
5353
}).toThrowError(/incorrect mongoose model/);
5454
expect(() => {
55-
// $FlowFixMe
56-
getFieldsFromModel({ schema: {} });
55+
const wrongArgs: any = [{ schema: {} }];
56+
getFieldsFromModel(...wrongArgs);
5757
}).toThrowError(/incorrect mongoose model/);
5858
});
5959
});
@@ -62,20 +62,20 @@ describe('fieldConverter', () => {
6262
it('should throw error on incorrect mongoose field', () => {
6363
const err = /incorrect mongoose field/;
6464
expect(() => {
65-
// $FlowFixMe
66-
deriveComplexType();
65+
const wrongArgs: any = [];
66+
deriveComplexType(...wrongArgs);
6767
}).toThrowError(err);
6868
expect(() => {
69-
// $FlowFixMe
70-
deriveComplexType(123);
69+
const wrongArgs: any = [123];
70+
deriveComplexType(...wrongArgs);
7171
}).toThrowError(err);
7272
expect(() => {
73-
// $FlowFixMe
74-
deriveComplexType({ a: 1 });
73+
const wrongArgs: any = [{ a: 1 }];
74+
deriveComplexType(...wrongArgs);
7575
}).toThrowError(err);
7676
expect(() => {
77-
// $FlowFixMe
78-
deriveComplexType({ path: 'name' });
77+
const wrongArgs: any = [{ path: 'name' }];
78+
deriveComplexType(...wrongArgs);
7979
}).toThrowError(err);
8080
expect(() => {
8181
deriveComplexType({ path: 'name', instance: 'Abc' });
@@ -99,9 +99,7 @@ describe('fieldConverter', () => {
9999

100100
it('schould derive ENUM', () => {
101101
expect(deriveComplexType(fields.gender)).toBe(ComplexTypes.ENUM);
102-
// $FlowFixMe
103102
expect(deriveComplexType(fields.languages.schema.paths.ln)).toBe(ComplexTypes.ENUM);
104-
// $FlowFixMe
105103
expect(deriveComplexType(fields.languages.schema.paths.sk)).toBe(ComplexTypes.ENUM);
106104
});
107105

@@ -156,8 +154,7 @@ describe('fieldConverter', () => {
156154
});
157155

158156
it('should has string in ofType', () => {
159-
const skillsType = arrayToGraphQL(fields.skills);
160-
// $FlowFixMe
157+
const skillsType: any = arrayToGraphQL(fields.skills);
161158
expect(skillsType.ofType.name).toBe('String');
162159
});
163160
});
@@ -174,10 +171,8 @@ describe('fieldConverter', () => {
174171
});
175172

176173
it('should pass all enum values to GQ type', () => {
177-
const genderEnum = enumToGraphQL(fields.gender);
178-
// $FlowFixMe
174+
const genderEnum: any = enumToGraphQL(fields.gender);
179175
expect(genderEnum._values.length).toBe(fields.gender.enumValues.length);
180-
// $FlowFixMe
181176
expect(genderEnum._values[0].value).toBe(fields.gender.enumValues[0]);
182177
});
183178
});
@@ -189,8 +184,7 @@ describe('fieldConverter', () => {
189184
});
190185

191186
it('should have embedded fields', () => {
192-
const embeddedType = embeddedToGraphQL(fields.contacts);
193-
// $FlowFixMe
187+
const embeddedType: any = embeddedToGraphQL(fields.contacts);
194188
const embeddedFields = embeddedType._typeConfig.fields();
195189
expect(embeddedFields.email).toBeTruthy();
196190
expect(embeddedFields.locationId).toBeTruthy();
@@ -212,7 +206,7 @@ describe('fieldConverter', () => {
212206
name: 'Test empty subDoc',
213207
});
214208
await user.save();
215-
const result = await graphql(
209+
const result: any = await graphql(
216210
schema,
217211
`{
218212
user(_id: "${user._id}") {
@@ -226,7 +220,7 @@ describe('fieldConverter', () => {
226220
}
227221
}`
228222
);
229-
// $FlowFixMe
223+
230224
expect(result.data.user).toEqual({
231225
name: 'Test empty subDoc',
232226
subDoc: null,
@@ -255,7 +249,7 @@ describe('fieldConverter', () => {
255249
subDoc: { field2: { field21: 'ok' } },
256250
});
257251
await user2.save();
258-
const result2 = await graphql(
252+
const result2: any = await graphql(
259253
schema,
260254
`{
261255
user(_id: "${user2._id}") {
@@ -269,7 +263,7 @@ describe('fieldConverter', () => {
269263
}
270264
}`
271265
);
272-
// $FlowFixMe
266+
273267
expect(result2.data.user).toEqual({
274268
name: 'Test non empty subDoc',
275269
subDoc: {
@@ -281,8 +275,7 @@ describe('fieldConverter', () => {
281275
});
282276

283277
describe('documentArrayToGraphQL()', () => {
284-
const languagesType = documentArrayToGraphQL(fields.languages);
285-
// $FlowFixMe
278+
const languagesType: any = documentArrayToGraphQL(fields.languages);
286279
const languagesFields = languagesType.ofType._typeConfig.fields();
287280

288281
it('should produce GraphQLList', () => {
@@ -291,7 +284,6 @@ describe('fieldConverter', () => {
291284

292285
it('should has Language type in ofType', () => {
293286
// see src/__mocks__/languageSchema.js where type name `Language` is defined
294-
// $FlowFixMe
295287
expect(languagesType.ofType.name).toBe('Language');
296288
});
297289

@@ -341,10 +333,8 @@ describe('fieldConverter', () => {
341333
someDynamic
342334
}
343335
}`;
344-
const result = await graphql(schema, query);
345-
// $FlowFixMe
336+
const result: any = await graphql(schema, query);
346337
expect(result.data.user.name).toBe(user.name);
347-
// $FlowFixMe
348338
expect(result.data.user.someDynamic).toEqual(user.someDynamic);
349339
});
350340
});

src/resolvers/__tests__/createOne-test.js

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,8 @@ describe('createOne() ->', () => {
3333
describe('Resolver.args', () => {
3434
it('should have required `record` arg', () => {
3535
const resolver = createOne(UserModel, UserTypeComposer);
36-
const argConfig = resolver.getArg('record');
36+
const argConfig: any = resolver.getArg('record');
3737
expect(argConfig.type).toBeInstanceOf(GraphQLNonNull);
38-
// $FlowFixMe
3938
expect(argConfig.type.ofType.name).toBe('CreateOneUserInput');
4039
});
4140
});
@@ -120,21 +119,18 @@ describe('createOne() ->', () => {
120119

121120
describe('Resolver.getType()', () => {
122121
it('should have correct output type name', () => {
123-
const outputType = createOne(UserModel, UserTypeComposer).getType();
124-
// $FlowFixMe
122+
const outputType: any = createOne(UserModel, UserTypeComposer).getType();
125123
expect(outputType.name).toBe(`CreateOne${UserTypeComposer.getTypeName()}Payload`);
126124
});
127125

128126
it('should have recordId field', () => {
129-
const outputType = createOne(UserModel, UserTypeComposer).getType();
130-
// $FlowFixMe
127+
const outputType: any = createOne(UserModel, UserTypeComposer).getType();
131128
const recordIdField = new TypeComposer(outputType).getField('recordId');
132129
expect(recordIdField.type).toBe(GraphQLMongoID);
133130
});
134131

135132
it('should have record field', () => {
136-
const outputType = createOne(UserModel, UserTypeComposer).getType();
137-
// $FlowFixMe
133+
const outputType: any = createOne(UserModel, UserTypeComposer).getType();
138134
const recordField = new TypeComposer(outputType).getField('record');
139135
expect(recordField.type).toBe(UserTypeComposer.getType());
140136
});

src/resolvers/__tests__/findById-test.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,8 @@ describe('findById() ->', () => {
4949
it('should have non-null `_id` arg', () => {
5050
const resolver = findById(UserModel, UserTypeComposer);
5151
expect(resolver.hasArg('_id')).toBe(true);
52-
const argConfig = resolver.getArg('_id');
52+
const argConfig: any = resolver.getArg('_id');
5353
expect(argConfig.type).toBeInstanceOf(GraphQLNonNull);
54-
// $FlowFixMe
5554
expect(argConfig.type.ofType).toBe(GraphQLMongoID);
5655
});
5756
});

src/resolvers/__tests__/findByIds-test.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,9 @@ describe('findByIds() ->', () => {
5959
it('should have non-null `_ids` arg', () => {
6060
const resolver = findByIds(UserModel, UserTypeComposer);
6161
expect(resolver.hasArg('_ids')).toBe(true);
62-
const argConfig = resolver.getArg('_ids');
62+
const argConfig: any = resolver.getArg('_ids');
6363
expect(argConfig.type).toBeInstanceOf(GraphQLNonNull);
64-
// $FlowFixMe
6564
expect(argConfig.type.ofType).toBeInstanceOf(GraphQLList);
66-
// $FlowFixMe
6765
expect(argConfig.type.ofType.ofType).toBe(GraphQLMongoID);
6866
});
6967

src/resolvers/__tests__/findOne-test.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,19 +54,19 @@ describe('findOne() ->', () => {
5454
});
5555

5656
it('should have `filter` arg only with indexed fields', async () => {
57-
const result = findOne(UserModel, UserTypeComposer, {
57+
const result: any = findOne(UserModel, UserTypeComposer, {
5858
filter: { onlyIndexed: true, operators: false },
5959
});
60-
// $FlowFixMe
6160
const filterFields = result.args.filter.type._typeConfig.fields();
6261
expect(Object.keys(filterFields)).toEqual(
6362
expect.arrayContaining(['_id', 'name', 'employment'])
6463
);
6564
});
6665

6766
it('should have `filter` arg with required `name` field', async () => {
68-
const result = findOne(UserModel, UserTypeComposer, { filter: { requiredFields: 'name' } });
69-
// $FlowFixMe
67+
const result: any = findOne(UserModel, UserTypeComposer, {
68+
filter: { requiredFields: 'name' },
69+
});
7070
const filterFields = result.args.filter.type._typeConfig.fields();
7171
expect(filterFields.name.type).toBeInstanceOf(GraphQLNonNull);
7272
});

src/resolvers/__tests__/removeById-test.js

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,8 @@ describe('removeById() ->', () => {
4545
it('should have non-null `_id` arg', () => {
4646
const resolver = removeById(UserModel, UserTypeComposer);
4747
expect(resolver.hasArg('_id')).toBe(true);
48-
const argConfig = resolver.getArg('_id');
48+
const argConfig: any = resolver.getArg('_id');
4949
expect(argConfig.type).toBeInstanceOf(GraphQLNonNull);
50-
// $FlowFixMe
5150
expect(argConfig.type.ofType).toBe(GraphQLMongoID);
5251
});
5352
});
@@ -163,22 +162,19 @@ describe('removeById() ->', () => {
163162

164163
describe('Resolver.getType()', () => {
165164
it('should have correct output type name', () => {
166-
const outputType = removeById(UserModel, UserTypeComposer).getType();
167-
// $FlowFixMe
165+
const outputType: any = removeById(UserModel, UserTypeComposer).getType();
168166
expect(outputType.name).toBe(`RemoveById${UserTypeComposer.getTypeName()}Payload`);
169167
});
170168

171169
it('should have recordId field', () => {
172-
const outputType = removeById(UserModel, UserTypeComposer).getType();
173-
// $FlowFixMe
170+
const outputType: any = removeById(UserModel, UserTypeComposer).getType();
174171
const typeComposer = new TypeComposer(outputType);
175172
expect(typeComposer.hasField('recordId')).toBe(true);
176173
expect(typeComposer.getField('recordId').type).toBe(GraphQLMongoID);
177174
});
178175

179176
it('should have record field', () => {
180-
const outputType = removeById(UserModel, UserTypeComposer).getType();
181-
// $FlowFixMe
177+
const outputType: any = removeById(UserModel, UserTypeComposer).getType();
182178
const typeComposer = new TypeComposer(outputType);
183179
expect(typeComposer.hasField('record')).toBe(true);
184180
expect(typeComposer.getField('record').type).toBe(UserTypeComposer.getType());

src/resolvers/__tests__/removeMany-test.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,14 +124,12 @@ describe('removeMany() ->', () => {
124124

125125
describe('Resolver.getType()', () => {
126126
it('should have correct output type name', () => {
127-
const outputType = removeMany(UserModel, UserTypeComposer).getType();
128-
// $FlowFixMe
127+
const outputType: any = removeMany(UserModel, UserTypeComposer).getType();
129128
expect(outputType.name).toBe(`RemoveMany${UserTypeComposer.getTypeName()}Payload`);
130129
});
131130

132131
it('should have numAffected field', () => {
133-
const outputType = removeMany(UserModel, UserTypeComposer).getType();
134-
// $FlowFixMe
132+
const outputType: any = removeMany(UserModel, UserTypeComposer).getType();
135133
const numAffectedField = new TypeComposer(outputType).getField('numAffected');
136134
expect(numAffectedField.type).toBe(GraphQLInt);
137135
});

src/resolvers/__tests__/removeOne-test.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -195,21 +195,18 @@ describe('removeOne() ->', () => {
195195

196196
describe('Resolver.getType()', () => {
197197
it('should have correct output type name', () => {
198-
const outputType = removeOne(UserModel, UserTypeComposer).getType();
199-
// $FlowFixMe
198+
const outputType: any = removeOne(UserModel, UserTypeComposer).getType();
200199
expect(outputType.name).toBe(`RemoveOne${UserTypeComposer.getTypeName()}Payload`);
201200
});
202201

203202
it('should have recordId field', () => {
204-
const outputType = removeOne(UserModel, UserTypeComposer).getType();
205-
// $FlowFixMe
203+
const outputType: any = removeOne(UserModel, UserTypeComposer).getType();
206204
const recordIdField = new TypeComposer(outputType).getField('recordId');
207205
expect(recordIdField.type).toBe(GraphQLMongoID);
208206
});
209207

210208
it('should have record field', () => {
211-
const outputType = removeOne(UserModel, UserTypeComposer).getType();
212-
// $FlowFixMe
209+
const outputType: any = removeOne(UserModel, UserTypeComposer).getType();
213210
const recordField = new TypeComposer(outputType).getField('record');
214211
expect(recordField.type).toBe(UserTypeComposer.getType());
215212
});

src/resolvers/__tests__/updateById-test.js

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,16 @@ describe('updateById() ->', () => {
5757
describe('Resolver.args', () => {
5858
it('should have `record` arg', () => {
5959
const resolver = updateById(UserModel, UserTypeComposer);
60-
const argConfig = resolver.getArg('record');
60+
const argConfig: any = resolver.getArg('record');
6161
expect(argConfig.type).toBeInstanceOf(GraphQLNonNull);
62-
// $FlowFixMe
6362
expect(argConfig.type.ofType.name).toBe('UpdateByIdUserInput');
6463
});
6564

6665
it('should have `record._id` required arg', () => {
6766
const resolver = updateById(UserModel, UserTypeComposer);
68-
const argConfig = resolver.getArg('record') || {};
69-
// $FlowFixMe
67+
const argConfig: any = resolver.getArg('record') || {};
7068
expect(argConfig.type.ofType).toBeInstanceOf(GraphQLInputObjectType);
7169
if (argConfig.type && argConfig.type.ofType) {
72-
// $FlowFixMe
7370
const _idFieldType = new InputTypeComposer(argConfig.type.ofType).getFieldType('_id');
7471
expect(_idFieldType).toBeInstanceOf(GraphQLNonNull);
7572
expect(getNullableType(_idFieldType)).toBe(GraphQLMongoID);
@@ -193,22 +190,19 @@ describe('updateById() ->', () => {
193190

194191
describe('Resolver.getType()', () => {
195192
it('should have correct output type name', () => {
196-
const outputType = updateById(UserModel, UserTypeComposer).getType();
197-
// $FlowFixMe
193+
const outputType: any = updateById(UserModel, UserTypeComposer).getType();
198194
expect(outputType.name).toBe(`UpdateById${UserTypeComposer.getTypeName()}Payload`);
199195
});
200196

201197
it('should have recordId field', () => {
202-
const outputType = updateById(UserModel, UserTypeComposer).getType();
203-
// $FlowFixMe
198+
const outputType: any = updateById(UserModel, UserTypeComposer).getType();
204199
const typeComposer = new TypeComposer(outputType);
205200
expect(typeComposer.hasField('recordId')).toBe(true);
206201
expect(typeComposer.getField('recordId').type).toBe(GraphQLMongoID);
207202
});
208203

209204
it('should have record field', () => {
210-
const outputType = updateById(UserModel, UserTypeComposer).getType();
211-
// $FlowFixMe
205+
const outputType: any = updateById(UserModel, UserTypeComposer).getType();
212206
const typeComposer = new TypeComposer(outputType);
213207
expect(typeComposer.hasField('record')).toBe(true);
214208
expect(typeComposer.getField('record').type).toBe(UserTypeComposer.getType());

0 commit comments

Comments
 (0)