Ich teste meine GraphQL API, aber ich möchte sie ein wenig aufräumen. Es ist erwähnenswert, ich verwende chai-http
für die Netzwerkanforderungen. Hier ist, was ich gerade tun (das funktioniert):Testen von GraphQL API
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: \"[email protected]\", \
}) { \
id, \
firstName \
} \
}'
})
.end((err, res) => {
if (err) { reject(err) }
let data = res.body.data;
let user = data.user;
resolve(user);
})
});
});
Aber ich möchte, dass es reinigen etwas nach oben und etwas tun, wie folgt aus:
let createUser = (() => {
let newUser = {
firstName: 'Test',
lastName: 'User',
email: '[email protected]'
};
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);
})
});
});
aber dieser Stil hat der Platzierung Die Objekteingaben funktionieren nicht und geben einen fehlerhaften Anforderungsfehler zurück. Hier ist, was Teil des zurückgegebenen Fehlerobjekts lautet:
Irgendwelche Ideen, warum dies nicht funktioniert? Danke im Voraus!
Danke Knospe, werde es ausprobieren! @vince – Thomas
Hey @vince, sowieso die Antwort aufzuräumen ich will zurück? Sag ich wollte ID, Vorname, Nachname, FacebookUID, E-Mail, etc .. zurückgegeben nach der Erstellung? Was denken Sie? – Thomas
In diesem Fall könnten Sie immer nur mehr Felder zurückgeben. Im Moment gibt die Abfrage 'id' und 'firstName' zurück, aber Sie können auch zu dieser Liste hinzufügen und 'lastName',' facebookUID', 'email', usw. hinzufügen. – vince