File tree Expand file tree Collapse file tree 2 files changed +36
-4
lines changed Expand file tree Collapse file tree 2 files changed +36
-4
lines changed Original file line number Diff line number Diff line change @@ -167,11 +167,16 @@ describe('Resolver helper `filter` ->', () => {
167167
168168 describe ( 'filterHelper()' , ( ) => {
169169 let spyWhereFn ;
170+ let spyWhere2Fn ;
170171 let spyFindFn ;
171172 let resolveParams ;
172173
173174 beforeEach ( ( ) => {
174- spyWhereFn = spy ( ) ;
175+ spyWhereFn = spy ( ( queryObj ) => {
176+ spyWhere2Fn = spy ( ) ;
177+ return { where : spyWhere2Fn } ;
178+ } ) ;
179+
175180 spyFindFn = spy ( ) ;
176181 resolveParams = {
177182 query : {
@@ -217,9 +222,29 @@ describe('Resolver helper `filter` ->', () => {
217222 } ,
218223 } ;
219224 filterHelper ( resolveParams ) ;
220- expect ( spyFindFn ) . to . have . been . called . with (
225+ expect ( spyWhereFn ) . to . have . been . called . with (
221226 { age : { $gt : 10 , $lt : 20 } }
222227 ) ;
223228 } ) ;
229+
230+ it ( 'should add rawQuery to query' , ( ) => {
231+ resolveParams . args = {
232+ filter : {
233+ [ OPERATORS_FIELDNAME ] : { age : { gt : 10 , lt : 20 } } ,
234+ } ,
235+ } ;
236+ resolveParams . rawQuery = {
237+ age : { max : 30 } ,
238+ active : true ,
239+ } ;
240+
241+ filterHelper ( resolveParams ) ;
242+ expect ( spyWhereFn ) . to . have . been . called . with (
243+ { age : { $gt : 10 , $lt : 20 } }
244+ ) ;
245+ expect ( spyWhere2Fn ) . to . have . been . called . with (
246+ { age : { max : 30 } , active : true }
247+ ) ;
248+ } ) ;
224249 } ) ;
225250} ) ;
Original file line number Diff line number Diff line change 99} from 'graphql' ;
1010import { TypeComposer , InputTypeComposer } from 'graphql-compose' ;
1111import getIndexesFromModel from '../../utils/getIndexesFromModel' ;
12+ import { isObject } from '../../utils/is' ;
1213import { toDottedObject , upperFirst } from '../../utils' ;
1314import typeStorage from '../../typeStorage' ;
1415import type {
@@ -115,14 +116,20 @@ export function filterHelper(resolveParams: ExtendedResolveParams): void {
115116 criteria [ `$${ operatorName } ` ] = fieldOperators [ operatorName ] ;
116117 } ) ;
117118 if ( Object . keys ( criteria ) . length > 0 ) {
118- // $FlowFixMe
119- resolveParams . query = resolveParams . query . find ( { // eslint-disable-line
119+ resolveParams . query = resolveParams . query . where ( { // eslint-disable-line
120120 [ fieldName ] : criteria ,
121121 } ) ;
122122 }
123123 } ) ;
124124 }
125125 }
126+
127+ if ( isObject ( resolveParams . rawQuery ) ) {
128+ resolveParams . query = resolveParams . query . where ( // eslint-disable-line
129+ // $FlowFixMe
130+ resolveParams . rawQuery
131+ ) ;
132+ }
126133}
127134
128135export function getIndexedFieldNames ( model : MongooseModelT ) : string [ ] {
You can’t perform that action at this time.
0 commit comments