I am testing my GraphQL API, but I would have cleaned it up a bit. It is worth noting that I use chai-httpfor network requests. Here is what I am doing now (what works):
let createUser = (()=> {
return new Promise((resolve, reject) => {
chai.request(server)
.post('/api/graphql/')
.set('content-type', 'application/json')
.send({ 'query' :
'mutation users { \
user : addUser(inputs: { \
firstName: \"Test\", \
lastName: \"User\", \
email: \"test@test.com\", \
}) { \
id, \
firstName \
} \
}'
})
.end((err, res) => {
if (err) { reject(err) }
let data = res.body.data;
let user = data.user;
resolve(user);
})
});
});
However, I would like to clean it up a bit and do something like this:
let createUser = (() => {
let newUser = {
firstName: 'Test',
lastName: 'User',
email: 'test@test.com'
};
return new Promise((resolve, reject) => {
chai.request(server)
.post('/api/graphql/')
.set('content-type', 'application/json')
.send({ 'query' :
'mutation users { \
user : addUser(inputs: ' + JSON.stringify(newUser) + ') { \
id, \
firstName \
} \
}'
})
.end((err, res) => {
if (err) { reject(err) }
let data = res.body.data;
let user = data.user;
resolve(user);
})
});
});
However, this style makes the placement of object inputs not working and returns a bad request error. Here is what part of the returned error object reads:

Any ideas why this is not working? Thanks in advance!
source
share