-
-
Notifications
You must be signed in to change notification settings - Fork 95
Closed
Description
When calling .getArgs()
on a mongoose resolver, arguments added by addFilterArg
will get reset.
I also observe that calling .addFilterArg()
on a cloned resolver also affect the original resolver, but calling .addArg()
doesn't
See the following snippet:
const mongoose = require('mongoose');
const { composeMongoose } = require('graphql-compose-mongoose');
const Person = mongoose.model('Person', new mongoose.Schema({
firstName: String,
lastName: String
}))
const PersonTC = composeMongoose(Person)
const findManyResolver = PersonTC.mongooseResolvers.findMany()
const personsResolver = PersonTC.mongooseResolvers.findMany().clone().addFilterArg({
name: 'fullName',
type: 'String'
}).addArgs({
username: 'String'
})
console.log('personsResolver username', personsResolver.hasArg('username')) // true -> OK, expected
console.log('personsResolver filter.fullName', personsResolver.getArgITC('filter').hasField('fullName')) // true -> OK, expected
console.log('findManyResolver username', findManyResolver.hasArg('username')) // false -> OK, expected
console.log('findManyResolver filter.fullName', findManyResolver.getArgITC('filter').hasField('fullName')) // false -> NOT EXPECTED, .addFilterArg not consistent with .addArg
PersonTC.mongooseResolvers.findMany().getArgs() // this line resets the `filter` arguments
// calling findManyResolver.getArgs() does not trigger the issue
console.log('personsResolver username', personsResolver.hasArg('username')) // true -> OK, expected
console.log('personsResolver filter.fullName', personsResolver.getArgITC('filter').hasField('fullName')) // false -> NOT EXPECTED, `filter.fullName` suddenly disappeared
console.log('findManyResolver username', findManyResolver.hasArg('username')) // false
console.log('findManyResolver filter.fullName', findManyResolver.getArgITC('filter').hasField('fullName')) // false
Metadata
Metadata
Assignees
Labels
No labels