Skip to content

Commit 5a272ac

Browse files
committed
fix broken tests
1 parent 946c5d7 commit 5a272ac

File tree

3 files changed

+33
-19
lines changed

3 files changed

+33
-19
lines changed

src/resolvers/__tests__/findOne-test.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ describe('findOne() ->', () => {
5252
});
5353

5454
it('should have `filter` arg only with indexed fields', async () => {
55-
const result = findOne(UserModel, UserTypeComposer, { filter: { onlyIndexed: true } });
55+
const result = findOne(UserModel, UserTypeComposer,
56+
{ filter: { onlyIndexed: true, operators: false } }
57+
);
5658
const filterFields = result.args.filter.type._typeConfig.fields();
5759
expect(filterFields).all.keys(['_id', 'name', 'employment']);
5860
});

src/resolvers/helpers/__tests__/filter-test.js

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import {
55
filterHelperArgs,
66
filterHelper,
77
getIndexedFieldNames,
8+
addFieldsWithOperator,
9+
OPERATORS_FIELDNAME,
810
} from '../filter';
911
import { UserModel } from '../../../__mocks__/userModel.js';
1012
import { GraphQLInputObjectType, GraphQLNonNull } from 'graphql';
@@ -26,14 +28,34 @@ describe('Resolver helper `filter` ->', () => {
2628
});
2729
});
2830

31+
// describe('addFieldsWithOperator()', () => {
32+
// it('should add OPERATORS_FIELDNAME to filterType', () => {
33+
// const args = filterHelperArgs(UserTypeComposer, UserModel, {
34+
// filterTypeName: 'FilterUserType',
35+
// });
36+
// const inputTypeComposer = new InputTypeComposer(args.filter.type);
37+
// addFieldsWithOperator('testTypeName', inputTypeComposer, UserModel, {});
38+
// });
39+
// });
40+
2941
describe('filterHelperArgs()', () => {
42+
it('should throw error if first arg is not TypeComposer', () => {
43+
expect(() => filterHelperArgs({}))
44+
.to.throw('should be instance of TypeComposer');
45+
});
46+
47+
it('should throw error if second arg is not MongooseModel', () => {
48+
expect(() => filterHelperArgs(UserTypeComposer, {}))
49+
.to.throw('should be instance of MongooseModel');
50+
});
51+
3052
it('should throw error if `filterTypeName` not provided in opts', () => {
31-
expect(() => filterHelperArgs(UserTypeComposer))
53+
expect(() => filterHelperArgs(UserTypeComposer, UserModel))
3254
.to.throw('provide non-empty `filterTypeName`');
3355
});
3456

3557
it('should return filter field', () => {
36-
const args = filterHelperArgs(UserTypeComposer, {
58+
const args = filterHelperArgs(UserTypeComposer, UserModel, {
3759
filterTypeName: 'FilterUserType',
3860
});
3961
expect(args).has.property('filter');
@@ -42,7 +64,7 @@ describe('Resolver helper `filter` ->', () => {
4264
});
4365

4466
it('should for opts.isRequired=true return GraphQLNonNull', () => {
45-
const args = filterHelperArgs(UserTypeComposer, {
67+
const args = filterHelperArgs(UserTypeComposer, UserModel, {
4668
filterTypeName: 'FilterUserType',
4769
isRequired: true,
4870
});
@@ -52,7 +74,7 @@ describe('Resolver helper `filter` ->', () => {
5274
});
5375

5476
it('should remove fields via opts.removeFields', () => {
55-
const args = filterHelperArgs(UserTypeComposer, {
77+
const args = filterHelperArgs(UserTypeComposer, UserModel, {
5678
filterTypeName: 'FilterUserType',
5779
removeFields: ['name', 'age'],
5880
});
@@ -63,7 +85,7 @@ describe('Resolver helper `filter` ->', () => {
6385
});
6486

6587
it('should set required fields via opts.requiredFields', () => {
66-
const args = filterHelperArgs(UserTypeComposer, {
88+
const args = filterHelperArgs(UserTypeComposer, UserModel, {
6789
filterTypeName: 'FilterUserType',
6890
requiredFields: ['name', 'age'],
6991
});
@@ -73,17 +95,8 @@ describe('Resolver helper `filter` ->', () => {
7395
expect(inputTypeComposer.getFieldType('gender')).not.instanceof(GraphQLNonNull);
7496
});
7597

76-
it('should throw error if opts.onlyIndexed=true and opts.model not provided', () => {
77-
expect(() => {
78-
filterHelperArgs(UserTypeComposer, {
79-
filterTypeName: 'FilterUserType',
80-
onlyIndexed: true,
81-
});
82-
}).to.throw('You should provide `model`');
83-
});
84-
8598
it('should leave only indexed fields if opts.onlyIndexed=true', () => {
86-
const args = filterHelperArgs(UserTypeComposer, {
99+
const args = filterHelperArgs(UserTypeComposer, UserModel, {
87100
filterTypeName: 'FilterUserType',
88101
onlyIndexed: true,
89102
model: UserModel,
@@ -96,7 +109,7 @@ describe('Resolver helper `filter` ->', () => {
96109
});
97110

98111
it('should opts.onlyIndexed=true and opts.removeFields works together', () => {
99-
const args = filterHelperArgs(UserTypeComposer, {
112+
const args = filterHelperArgs(UserTypeComposer, UserModel, {
100113
filterTypeName: 'FilterUserType',
101114
onlyIndexed: true,
102115
model: UserModel,

src/resolvers/helpers/filter.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export const filterHelperArgs = (
3333

3434
if (!model || !model.modelName || !model.schema) {
3535
throw new Error(
36-
'Second arg for filterHelperArgs() should be instance of Mongoose Model.'
36+
'Second arg for filterHelperArgs() should be instance of MongooseModel.'
3737
);
3838
}
3939

@@ -61,7 +61,6 @@ export const filterHelperArgs = (
6161

6262
const filterTypeName: string = opts.filterTypeName;
6363
const inputComposer = typeComposer.getInputTypeComposer().clone(filterTypeName);
64-
inputComposer.makeFieldsOptional(inputComposer.getFieldNames());
6564
inputComposer.removeField(removeFields);
6665

6766
if (opts.requiredFields) {

0 commit comments

Comments
 (0)