Skip to content

Commit 039775a

Browse files
committed
add additional test
1 parent 1e90861 commit 039775a

File tree

1 file changed

+70
-1
lines changed

1 file changed

+70
-1
lines changed

src/execution/__tests__/defer-test.ts

Lines changed: 70 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1082,7 +1082,7 @@ describe('Execute: defer directive', () => {
10821082
]);
10831083
});
10841084

1085-
it('Preserves error boundaries', async () => {
1085+
it('Preserves error boundaries, null first', async () => {
10861086
const document = parse(`
10871087
query {
10881088
... @defer {
@@ -1151,6 +1151,75 @@ describe('Execute: defer directive', () => {
11511151
]);
11521152
});
11531153

1154+
it('Preserves error boundaries, value first', async () => {
1155+
const document = parse(`
1156+
query {
1157+
... @defer {
1158+
a {
1159+
b {
1160+
c {
1161+
d
1162+
}
1163+
}
1164+
}
1165+
}
1166+
a {
1167+
... @defer {
1168+
someField
1169+
b {
1170+
c {
1171+
nonNullErrorField
1172+
}
1173+
}
1174+
}
1175+
}
1176+
}
1177+
`);
1178+
const result = await complete(document);
1179+
expectJSON(result).toDeepEqual([
1180+
{
1181+
data: {
1182+
a: {},
1183+
},
1184+
hasNext: true,
1185+
},
1186+
{
1187+
incremental: [
1188+
{
1189+
data: {
1190+
a: {
1191+
b: {
1192+
c: {
1193+
d: 'd',
1194+
},
1195+
},
1196+
},
1197+
},
1198+
path: [],
1199+
},
1200+
{
1201+
data: {
1202+
b: {
1203+
c: null,
1204+
},
1205+
someField: 'someField',
1206+
},
1207+
errors: [
1208+
{
1209+
message:
1210+
'Cannot return null for non-nullable field c.nonNullErrorField.',
1211+
locations: [{ line: 17, column: 17 }],
1212+
path: ['a', 'b', 'c', 'nonNullErrorField'],
1213+
},
1214+
],
1215+
path: ['a'],
1216+
},
1217+
],
1218+
hasNext: false,
1219+
},
1220+
]);
1221+
});
1222+
11541223
it('Cancels deferred fields when initial result exhibits null bubbling', async () => {
11551224
const document = parse(`
11561225
query {

0 commit comments

Comments
 (0)