@@ -122,6 +122,66 @@ describe('GraphQLError', () => {
122
122
} ) ;
123
123
} ) ;
124
124
125
+ it ( 'defaults to original error extension only if extensions argument is not passed' , ( ) => {
126
+ class ErrorWithExtensions extends Error {
127
+ extensions : mixed ;
128
+
129
+ constructor ( message : string ) {
130
+ super ( message ) ;
131
+ this . extensions = { original : 'extensions' } ;
132
+ }
133
+ }
134
+
135
+ const original = new ErrorWithExtensions ( 'original' ) ;
136
+ const inheritedExtensions = new GraphQLError (
137
+ 'InheritedExtensions' ,
138
+ undefined ,
139
+ undefined ,
140
+ undefined ,
141
+ undefined ,
142
+ original ,
143
+ undefined ,
144
+ ) ;
145
+
146
+ expect ( inheritedExtensions ) . to . deep . include ( {
147
+ message : 'InheritedExtensions' ,
148
+ originalError : original ,
149
+ extensions : { original : 'extensions' } ,
150
+ } ) ;
151
+
152
+ const ownExtensions = new GraphQLError (
153
+ 'OwnExtensions' ,
154
+ undefined ,
155
+ undefined ,
156
+ undefined ,
157
+ undefined ,
158
+ original ,
159
+ { own : 'extensions' } ,
160
+ ) ;
161
+
162
+ expect ( ownExtensions ) . to . deep . include ( {
163
+ message : 'OwnExtensions' ,
164
+ originalError : original ,
165
+ extensions : { own : 'extensions' } ,
166
+ } ) ;
167
+
168
+ const ownEmptyExtensions = new GraphQLError (
169
+ 'OwnEmptyExtensions' ,
170
+ undefined ,
171
+ undefined ,
172
+ undefined ,
173
+ undefined ,
174
+ original ,
175
+ { } ,
176
+ ) ;
177
+
178
+ expect ( ownEmptyExtensions ) . to . deep . include ( {
179
+ message : 'OwnEmptyExtensions' ,
180
+ originalError : original ,
181
+ extensions : { } ,
182
+ } ) ;
183
+ } ) ;
184
+
125
185
it ( 'serializes to include all standard fields' , ( ) => {
126
186
const eShort = new GraphQLError ( 'msg' ) ;
127
187
expect ( JSON . stringify ( eShort , null , 2 ) + '\n' ) . to . equal ( dedent `
0 commit comments