How to write unit tests for graphql. I am using apollo server, graphql-tester, and graphql.
When i run the test it gives following error
{ raw: '{"errors":[{"message":"Cannot read property \'definitions\' of undefined"}]}',
data: undefined,
errors: [ { message: 'Cannot read property \'definitions\' of undefined' } ],
headers:
{ 'x-powered-by': 'Express',
'content-type': 'application/json',
date: 'Wed, 18 Jan 2017 05:56:22 GMT',
connection: 'close',
'transfer-encoding': 'chunked' },
status: 400,
success: false }
1) Returns success
0 passing (35ms)
1 failing
1) Unittest1 Returns success:
TypeError: Cannot read property 'success' of undefined
at Assertion. (node_modules/chai/lib/chai/core/assertions.js:890:14)
at Assertion.ctx.(anonymous function) (node_modules/chai/lib/chai/utils/addMethod.js:41:25)
at Assertion.somethingMethod (node_modules/chai-things/lib/chai-things.js:97:25)
at Assertion.ctx.(anonymous function) (node_modules/chai/lib/chai/utils/overwriteMethod.js:49:33)
at Assertion.allMethod (node_modules/chai-things/lib/chai-things.js:165:25)
at Assertion.ctx.(anonymous function) (node_modules/chai/lib/chai/utils/overwriteMethod.js:49:33)
at node_modules/chai-as-promised/lib/chai-as-promised.js:305:22
at process._tickCallback (internal/process/next_tick.js:103:7)
Following is the unit test.
const tester = require('graphql-tester').tester;
const fromGlobalId = require('graphql-relay').fromGlobalId;
const chai = require('chai');
chai.should();
chai.use(require('chai-things'));
chai.use(require('chai-properties'));
chai.use(require('chai-arrays'));
chai.use(require('chai-as-promised'));
describe('Sites', () => {
let sitesTest = tester({
url: 'http://localhost:3000/graphql'
});
describe('Unittest1', () => {
const response = sitesTest('{viewer {id}}').then((data) => {
console.log(data)
});
it('Returns success', () => {
return response.should.eventually.have.property('success').equal(true);
});
});
});