Skip to content

Commit

Permalink
GraphQLError: Add test to check order of fields in JSON.stringify (#3336
Browse files Browse the repository at this point in the history
)
  • Loading branch information
IvanGoncharov committed Oct 26, 2021
1 parent dc1f7a5 commit a745361
Showing 1 changed file with 38 additions and 20 deletions.
58 changes: 38 additions & 20 deletions src/error/__tests__/GraphQLError-test.ts
Expand Up @@ -144,29 +144,47 @@ describe('GraphQLError', () => {
});
});

it('serializes to include message', () => {
const e = new GraphQLError('msg');
expect(JSON.stringify(e)).to.equal('{"message":"msg"}');
});
it('serializes to include all standard fields', () => {
const eShort = new GraphQLError('msg');
expect(JSON.stringify(eShort, null, 2)).to.equal(dedent`
{
"message": "msg"
}
`);

it('serializes to include message and locations', () => {
const e = new GraphQLError('msg', fieldNode);
expect(JSON.stringify(e)).to.equal(
'{"message":"msg","locations":[{"line":2,"column":3}]}',
const path = ['path', 2, 'field'];
const extensions = { foo: 'bar' };
const eFull = new GraphQLError(
'msg',
fieldNode,
undefined,
undefined,
path,
undefined,
extensions,
);
});

it('serializes to include path', () => {
const e = new GraphQLError('msg', null, null, null, [
'path',
3,
'to',
'field',
]);
expect(e).to.have.deep.property('path', ['path', 3, 'to', 'field']);
expect(JSON.stringify(e)).to.equal(
'{"message":"msg","path":["path",3,"to","field"]}',
);
// We should try to keep order of fields stable
// Changing it wouldn't be breaking change but will fail some tests in other libraries.
expect(JSON.stringify(eFull, null, 2)).to.equal(dedent`
{
"message": "msg",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"path",
2,
"field"
],
"extensions": {
"foo": "bar"
}
}
`);
});
});

Expand Down

0 comments on commit a745361

Please sign in to comment.