Skip to content

Commit 958ac6c

Browse files
GraphQLError-test: text how extensions is inherited from originalError (#3348)
1 parent 10c1c3d commit 958ac6c

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

src/error/__tests__/GraphQLError-test.ts

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,66 @@ describe('GraphQLError', () => {
144144
});
145145
});
146146

147+
it('defaults to original error extension only if extensions argument is not passed', () => {
148+
class ErrorWithExtensions extends Error {
149+
extensions: unknown;
150+
151+
constructor(message: string) {
152+
super(message);
153+
this.extensions = { original: 'extensions' };
154+
}
155+
}
156+
157+
const original = new ErrorWithExtensions('original');
158+
const inheritedExtensions = new GraphQLError(
159+
'InheritedExtensions',
160+
undefined,
161+
undefined,
162+
undefined,
163+
undefined,
164+
original,
165+
undefined,
166+
);
167+
168+
expect(inheritedExtensions).to.deep.include({
169+
message: 'InheritedExtensions',
170+
originalError: original,
171+
extensions: { original: 'extensions' },
172+
});
173+
174+
const ownExtensions = new GraphQLError(
175+
'OwnExtensions',
176+
undefined,
177+
undefined,
178+
undefined,
179+
undefined,
180+
original,
181+
{ own: 'extensions' },
182+
);
183+
184+
expect(ownExtensions).to.deep.include({
185+
message: 'OwnExtensions',
186+
originalError: original,
187+
extensions: { own: 'extensions' },
188+
});
189+
190+
const ownEmptyExtensions = new GraphQLError(
191+
'OwnEmptyExtensions',
192+
undefined,
193+
undefined,
194+
undefined,
195+
undefined,
196+
original,
197+
{},
198+
);
199+
200+
expect(ownEmptyExtensions).to.deep.include({
201+
message: 'OwnEmptyExtensions',
202+
originalError: original,
203+
extensions: {},
204+
});
205+
});
206+
147207
it('serializes to include all standard fields', () => {
148208
const eShort = new GraphQLError('msg');
149209
expect(JSON.stringify(eShort, null, 2)).to.equal(dedent`

0 commit comments

Comments
 (0)