@@ -8,11 +8,12 @@ import {
8
8
addFieldsWithOperator ,
9
9
OPERATORS_FIELDNAME ,
10
10
} from '../filter' ;
11
+ import GraphQLMongoID from '../../../types/mongoid' ;
11
12
import { UserModel } from '../../../__mocks__/userModel' ;
12
13
import { composeWithMongoose } from '../../../composeWithMongoose' ;
13
14
import typeStorage from '../../../typeStorage' ;
14
15
15
- const { GraphQLInputObjectType, GraphQLNonNull } = graphql ;
16
+ const { GraphQLInputObjectType, GraphQLNonNull, GraphQLList } = graphql ;
16
17
17
18
describe ( 'Resolver helper `filter` ->' , ( ) => {
18
19
let UserTypeComposer ;
@@ -111,6 +112,15 @@ describe('Resolver helper `filter` ->', () => {
111
112
expect ( args . filter . type ) . toBeInstanceOf ( GraphQLInputObjectType ) ;
112
113
} ) ;
113
114
115
+ it ( 'should return filter with field _ids' , ( ) => {
116
+ const args = filterHelperArgs ( UserTypeComposer , UserModel , {
117
+ filterTypeName : 'FilterUserType' ,
118
+ } ) ;
119
+ const itc = new InputTypeComposer ( args . filter . type ) ;
120
+ expect ( itc . getFieldType ( '_ids' ) ) . toBeInstanceOf ( GraphQLList ) ;
121
+ expect ( itc . getFieldType ( '_ids' ) . ofType ) . toBe ( GraphQLMongoID ) ;
122
+ } ) ;
123
+
114
124
it ( 'should for opts.isRequired=true return GraphQLNonNull' , ( ) => {
115
125
const args = filterHelperArgs ( UserTypeComposer , UserModel , {
116
126
filterTypeName : 'FilterUserType' ,
@@ -172,17 +182,12 @@ describe('Resolver helper `filter` ->', () => {
172
182
173
183
describe ( 'filterHelper()' , ( ) => {
174
184
let spyWhereFn ;
175
- let spyWhere2Fn ;
176
185
let spyFindFn ;
177
186
let resolveParams : any ;
178
187
179
188
beforeEach ( ( ) => {
180
189
spyWhereFn = jest . fn ( ( ) => {
181
- spyWhere2Fn = jest . fn ( ) ;
182
- return {
183
- ...UserModel . find ( ) ,
184
- where : spyWhere2Fn ,
185
- } ;
190
+ return resolveParams . query ;
186
191
} ) ;
187
192
188
193
spyFindFn = jest . fn ( ) ;
@@ -208,6 +213,17 @@ describe('Resolver helper `filter` ->', () => {
208
213
expect ( spyWhereFn ) . toBeCalledWith ( { name : 'nodkz' } ) ;
209
214
} ) ;
210
215
216
+ it ( 'should call query.where if args.filter provided with _ids' , ( ) => {
217
+ resolveParams . args = {
218
+ filter : {
219
+ age : 30 ,
220
+ _ids : [ 1 , 2 , 3 ] ,
221
+ } ,
222
+ } ;
223
+ filterHelper ( resolveParams ) ;
224
+ expect ( spyWhereFn . mock . calls ) . toEqual ( [ [ { _id : { $in : [ 1 , 2 , 3 ] } } ] , [ { age : 30 } ] ] ) ;
225
+ } ) ;
226
+
211
227
it ( 'should convert deep object in args.filter to dotted object' , ( ) => {
212
228
resolveParams . args = {
213
229
filter : {
@@ -246,8 +262,10 @@ describe('Resolver helper `filter` ->', () => {
246
262
} ;
247
263
248
264
filterHelper ( resolveParams ) ;
249
- expect ( spyWhereFn ) . toBeCalledWith ( { age : { $gt : 10 , $lt : 20 } } ) ;
250
- expect ( spyWhere2Fn ) . toBeCalledWith ( { age : { max : 30 } , active : true } ) ;
265
+ expect ( spyWhereFn . mock . calls ) . toEqual ( [
266
+ [ { age : { $gt : 10 , $lt : 20 } } ] ,
267
+ [ { active : true , age : { max : 30 } } ] ,
268
+ ] ) ;
251
269
} ) ;
252
270
} ) ;
253
271
} ) ;
0 commit comments