@@ -144,6 +144,66 @@ describe('GraphQLError', () => {
144
144
} ) ;
145
145
} ) ;
146
146
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
+
147
207
it ( 'serializes to include all standard fields' , ( ) => {
148
208
const eShort = new GraphQLError ( 'msg' ) ;
149
209
expect ( JSON . stringify ( eShort , null , 2 ) ) . to . equal ( dedent `
0 commit comments