Skip to content

Commit 01fa868

Browse files
expectJSON: return custom object instead of expect (#3310)
1 parent f45bc0a commit 01fa868

File tree

52 files changed

+556
-546
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+556
-546
lines changed

Diff for: src/__testUtils__/expectJSON.ts

+12-2
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,18 @@ function toJSONDeep(value: unknown): unknown {
2323
return mapValue(value, toJSONDeep);
2424
}
2525

26-
export function expectJSON(value: unknown) {
27-
return expect(toJSONDeep(value));
26+
export function expectJSON(actual: unknown) {
27+
return {
28+
toDeepEqual(expected: unknown) {
29+
expect(toJSONDeep(actual)).to.deep.equal(toJSONDeep(expected));
30+
},
31+
toDeepNestedProperty(path: string, expected: unknown) {
32+
expect(toJSONDeep(actual)).to.deep.nested.property(
33+
path,
34+
toJSONDeep(expected),
35+
);
36+
},
37+
};
2838
}
2939

3040
export function expectToThrowJSON(fn: () => unknown) {

Diff for: src/__tests__/starWarsQuery-test.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ describe('Star Wars Query Tests', () => {
395395
`;
396396

397397
const result = await graphql({ schema, source });
398-
expectJSON(result).to.deep.equal({
398+
expectJSON(result).toDeepEqual({
399399
data: {
400400
hero: {
401401
name: 'R2-D2',
@@ -426,7 +426,7 @@ describe('Star Wars Query Tests', () => {
426426
`;
427427

428428
const result = await graphql({ schema, source });
429-
expectJSON(result).to.deep.equal({
429+
expectJSON(result).toDeepEqual({
430430
data: {
431431
hero: {
432432
name: 'R2-D2',
@@ -477,7 +477,7 @@ describe('Star Wars Query Tests', () => {
477477
`;
478478

479479
const result = await graphql({ schema, source });
480-
expectJSON(result).to.deep.equal({
480+
expectJSON(result).toDeepEqual({
481481
data: {
482482
mainHero: {
483483
name: 'R2-D2',

Diff for: src/execution/__tests__/abstract-test.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ async function executeQuery(args: {
3939
contextValue: { async: true },
4040
});
4141

42-
expect(result).to.deep.equal(asyncResult);
42+
expectJSON(result).toDeepEqual(asyncResult);
4343
return result;
4444
}
4545

@@ -206,7 +206,7 @@ describe('Execute: Handles execution of abstract types', () => {
206206
}
207207
`;
208208

209-
expectJSON(await executeQuery({ schema, query })).to.deep.equal({
209+
expectJSON(await executeQuery({ schema, query })).toDeepEqual({
210210
data: {
211211
pets: [null, null],
212212
},
@@ -360,7 +360,7 @@ describe('Execute: Handles execution of abstract types', () => {
360360
}
361361
`;
362362

363-
expectJSON(await executeQuery({ schema, query })).to.deep.equal({
363+
expectJSON(await executeQuery({ schema, query })).toDeepEqual({
364364
data: {
365365
pets: [null, null],
366366
},
@@ -541,7 +541,7 @@ describe('Execute: Handles execution of abstract types', () => {
541541
const result = executeSync({ schema, document, rootValue });
542542
return {
543543
toEqual(message: string) {
544-
expectJSON(result).to.deep.equal({
544+
expectJSON(result).toDeepEqual({
545545
data: { pet: null },
546546
errors: [
547547
{

Diff for: src/execution/__tests__/executor-test.ts

+12-12
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,7 @@ describe('Execute: Handles basic execution tasks', () => {
499499
};
500500

501501
const result = await execute({ schema, document, rootValue });
502-
expectJSON(result).to.deep.equal({
502+
expectJSON(result).toDeepEqual({
503503
data: {
504504
sync: 'sync',
505505
syncError: null,
@@ -613,7 +613,7 @@ describe('Execute: Handles basic execution tasks', () => {
613613

614614
const result = await execute({ schema, document });
615615

616-
expectJSON(result).to.deep.equal({
616+
expectJSON(result).toDeepEqual({
617617
data: { foods: null },
618618
errors: [
619619
{
@@ -672,7 +672,7 @@ describe('Execute: Handles basic execution tasks', () => {
672672
`);
673673

674674
const result = executeSync({ schema, document });
675-
expectJSON(result).to.deep.equal({
675+
expectJSON(result).toDeepEqual({
676676
data: {
677677
nullableA: {
678678
aliasedA: null,
@@ -754,7 +754,7 @@ describe('Execute: Handles basic execution tasks', () => {
754754
const rootValue = { a: 'b' };
755755

756756
const result = executeSync({ schema, document, rootValue });
757-
expectJSON(result).to.deep.equal({
757+
expectJSON(result).toDeepEqual({
758758
errors: [{ message: 'Must provide an operation.' }],
759759
});
760760
});
@@ -774,7 +774,7 @@ describe('Execute: Handles basic execution tasks', () => {
774774
`);
775775

776776
const result = executeSync({ schema, document });
777-
expectJSON(result).to.deep.equal({
777+
expectJSON(result).toDeepEqual({
778778
errors: [
779779
{
780780
message:
@@ -800,7 +800,7 @@ describe('Execute: Handles basic execution tasks', () => {
800800
const operationName = 'UnknownExample';
801801

802802
const result = executeSync({ schema, document, operationName });
803-
expectJSON(result).to.deep.equal({
803+
expectJSON(result).toDeepEqual({
804804
errors: [{ message: 'Unknown operation named "UnknownExample".' }],
805805
});
806806
});
@@ -818,7 +818,7 @@ describe('Execute: Handles basic execution tasks', () => {
818818
const operationName = '';
819819

820820
const result = executeSync({ schema, document, operationName });
821-
expectJSON(result).to.deep.equal({
821+
expectJSON(result).toDeepEqual({
822822
errors: [{ message: 'Unknown operation named "".' }],
823823
});
824824
});
@@ -919,7 +919,7 @@ describe('Execute: Handles basic execution tasks', () => {
919919

920920
expectJSON(
921921
executeSync({ schema, document, operationName: 'Q' }),
922-
).to.deep.equal({
922+
).toDeepEqual({
923923
data: null,
924924
errors: [
925925
{
@@ -931,7 +931,7 @@ describe('Execute: Handles basic execution tasks', () => {
931931

932932
expectJSON(
933933
executeSync({ schema, document, operationName: 'M' }),
934-
).to.deep.equal({
934+
).toDeepEqual({
935935
data: null,
936936
errors: [
937937
{
@@ -943,7 +943,7 @@ describe('Execute: Handles basic execution tasks', () => {
943943

944944
expectJSON(
945945
executeSync({ schema, document, operationName: 'S' }),
946-
).to.deep.equal({
946+
).toDeepEqual({
947947
data: null,
948948
errors: [
949949
{
@@ -1123,7 +1123,7 @@ describe('Execute: Handles basic execution tasks', () => {
11231123
};
11241124

11251125
const result = executeSync({ schema, document, rootValue });
1126-
expectJSON(result).to.deep.equal({
1126+
expectJSON(result).toDeepEqual({
11271127
data: {
11281128
specials: [{ value: 'foo' }, null],
11291129
},
@@ -1167,7 +1167,7 @@ describe('Execute: Handles basic execution tasks', () => {
11671167
});
11681168

11691169
const result = executeSync({ schema, document: parse('{ customScalar }') });
1170-
expectJSON(result).to.deep.equal({
1170+
expectJSON(result).toDeepEqual({
11711171
data: { customScalar: null },
11721172
errors: [
11731173
{

Diff for: src/execution/__tests__/lists-test.ts

+16-16
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ describe('Execute: Accepts any iterable as list value', () => {
5252
it('Does not accept (Iterable) String-literal as a List value', () => {
5353
const listField = 'Singular';
5454

55-
expectJSON(complete({ listField })).to.deep.equal({
55+
expectJSON(complete({ listField })).toDeepEqual({
5656
data: { listField: null },
5757
errors: [
5858
{
@@ -74,14 +74,14 @@ describe('Execute: Handles list nullability', () => {
7474

7575
const result = await executeQuery(listField);
7676
// Promise<Array<T>> === Array<T>
77-
expect(await executeQuery(promisify(listField))).to.deep.equal(result);
77+
expectJSON(await executeQuery(promisify(listField))).toDeepEqual(result);
7878
if (Array.isArray(listField)) {
7979
const listOfPromises = listField.map(promisify);
8080

8181
// Array<Promise<T>> === Array<T>
82-
expect(await executeQuery(listOfPromises)).to.deep.equal(result);
82+
expectJSON(await executeQuery(listOfPromises)).toDeepEqual(result);
8383
// Promise<Array<Promise<T>>> === Array<T>
84-
expect(await executeQuery(promisify(listOfPromises))).to.deep.equal(
84+
expectJSON(await executeQuery(promisify(listOfPromises))).toDeepEqual(
8585
result,
8686
);
8787
}
@@ -131,11 +131,11 @@ describe('Execute: Handles list nullability', () => {
131131
expect(await complete({ listField, as: '[Int]!' })).to.deep.equal({
132132
data: { listField: [1, null, 2] },
133133
});
134-
expectJSON(await complete({ listField, as: '[Int!]' })).to.deep.equal({
134+
expectJSON(await complete({ listField, as: '[Int!]' })).toDeepEqual({
135135
data: { listField: null },
136136
errors,
137137
});
138-
expectJSON(await complete({ listField, as: '[Int!]!' })).to.deep.equal({
138+
expectJSON(await complete({ listField, as: '[Int!]!' })).toDeepEqual({
139139
data: null,
140140
errors,
141141
});
@@ -154,14 +154,14 @@ describe('Execute: Handles list nullability', () => {
154154
expect(await complete({ listField, as: '[Int]' })).to.deep.equal({
155155
data: { listField: null },
156156
});
157-
expectJSON(await complete({ listField, as: '[Int]!' })).to.deep.equal({
157+
expectJSON(await complete({ listField, as: '[Int]!' })).toDeepEqual({
158158
data: null,
159159
errors,
160160
});
161161
expect(await complete({ listField, as: '[Int!]' })).to.deep.equal({
162162
data: { listField: null },
163163
});
164-
expectJSON(await complete({ listField, as: '[Int!]!' })).to.deep.equal({
164+
expectJSON(await complete({ listField, as: '[Int!]!' })).toDeepEqual({
165165
data: null,
166166
errors,
167167
});
@@ -177,19 +177,19 @@ describe('Execute: Handles list nullability', () => {
177177
},
178178
];
179179

180-
expectJSON(await complete({ listField, as: '[Int]' })).to.deep.equal({
180+
expectJSON(await complete({ listField, as: '[Int]' })).toDeepEqual({
181181
data: { listField: [1, null, 2] },
182182
errors,
183183
});
184-
expectJSON(await complete({ listField, as: '[Int]!' })).to.deep.equal({
184+
expectJSON(await complete({ listField, as: '[Int]!' })).toDeepEqual({
185185
data: { listField: [1, null, 2] },
186186
errors,
187187
});
188-
expectJSON(await complete({ listField, as: '[Int!]' })).to.deep.equal({
188+
expectJSON(await complete({ listField, as: '[Int!]' })).toDeepEqual({
189189
data: { listField: null },
190190
errors,
191191
});
192-
expectJSON(await complete({ listField, as: '[Int!]!' })).to.deep.equal({
192+
expectJSON(await complete({ listField, as: '[Int!]!' })).toDeepEqual({
193193
data: null,
194194
errors,
195195
});
@@ -205,19 +205,19 @@ describe('Execute: Handles list nullability', () => {
205205
},
206206
];
207207

208-
expectJSON(await complete({ listField, as: '[Int]' })).to.deep.equal({
208+
expectJSON(await complete({ listField, as: '[Int]' })).toDeepEqual({
209209
data: { listField: null },
210210
errors,
211211
});
212-
expectJSON(await complete({ listField, as: '[Int]!' })).to.deep.equal({
212+
expectJSON(await complete({ listField, as: '[Int]!' })).toDeepEqual({
213213
data: null,
214214
errors,
215215
});
216-
expectJSON(await complete({ listField, as: '[Int!]' })).to.deep.equal({
216+
expectJSON(await complete({ listField, as: '[Int!]' })).toDeepEqual({
217217
data: { listField: null },
218218
errors,
219219
});
220-
expectJSON(await complete({ listField, as: '[Int!]!' })).to.deep.equal({
220+
expectJSON(await complete({ listField, as: '[Int!]!' })).toDeepEqual({
221221
data: null,
222222
errors,
223223
});

Diff for: src/execution/__tests__/mutations-test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ describe('Execute: Handles mutation execution ordering', () => {
169169
const rootValue = new Root(6);
170170
const result = await execute({ schema, document, rootValue });
171171

172-
expectJSON(result).to.deep.equal({
172+
expectJSON(result).toDeepEqual({
173173
data: {
174174
first: { theNumber: 1 },
175175
second: { theNumber: 2 },

0 commit comments

Comments
 (0)