@@ -16,6 +16,7 @@ import {
16
16
Scope ,
17
17
} from '../src' ;
18
18
import { NodeBackend } from '../src/backend' ;
19
+ import { LinkedErrors } from '../src/integrations' ;
19
20
20
21
jest . mock ( '@sentry/core' , ( ) => {
21
22
const original = jest . requireActual ( '@sentry/core' ) ;
@@ -198,6 +199,46 @@ describe('SentryNode', () => {
198
199
}
199
200
} ) ;
200
201
202
+ test . only ( 'capture a linked exception with pre/post context' , done => {
203
+ expect . assertions ( 15 ) ;
204
+ getCurrentHub ( ) . bindClient (
205
+ new NodeClient ( {
206
+ integrations : i => [ new LinkedErrors ( ) , ...i ] ,
207
+ beforeSend : ( event : Event ) => {
208
+ expect ( event . exception ) . not . toBeUndefined ( ) ;
209
+ expect ( event . exception ! . values ! [ 1 ] ) . not . toBeUndefined ( ) ;
210
+ expect ( event . exception ! . values ! [ 1 ] . stacktrace ! ) . not . toBeUndefined ( ) ;
211
+ expect ( event . exception ! . values ! [ 1 ] . stacktrace ! . frames ! [ 1 ] ) . not . toBeUndefined ( ) ;
212
+ expect ( event . exception ! . values ! [ 1 ] . stacktrace ! . frames ! [ 1 ] . pre_context ) . not . toBeUndefined ( ) ;
213
+ expect ( event . exception ! . values ! [ 1 ] . stacktrace ! . frames ! [ 1 ] . post_context ) . not . toBeUndefined ( ) ;
214
+ expect ( event . exception ! . values ! [ 1 ] . type ) . toBe ( 'Error' ) ;
215
+ expect ( event . exception ! . values ! [ 1 ] . value ) . toBe ( 'test' ) ;
216
+
217
+ expect ( event . exception ! . values ! [ 0 ] ) . not . toBeUndefined ( ) ;
218
+ expect ( event . exception ! . values ! [ 0 ] . stacktrace ! ) . not . toBeUndefined ( ) ;
219
+ expect ( event . exception ! . values ! [ 0 ] . stacktrace ! . frames ! [ 1 ] ) . not . toBeUndefined ( ) ;
220
+ expect ( event . exception ! . values ! [ 0 ] . stacktrace ! . frames ! [ 1 ] . pre_context ) . not . toBeUndefined ( ) ;
221
+ expect ( event . exception ! . values ! [ 0 ] . stacktrace ! . frames ! [ 1 ] . post_context ) . not . toBeUndefined ( ) ;
222
+ expect ( event . exception ! . values ! [ 0 ] . type ) . toBe ( 'Error' ) ;
223
+ expect ( event . exception ! . values ! [ 0 ] . value ) . toBe ( 'cause' ) ;
224
+ done ( ) ;
225
+ return null ;
226
+ } ,
227
+ dsn,
228
+ } ) ,
229
+ ) ;
230
+ try {
231
+ throw new Error ( 'test' ) ;
232
+ } catch ( e ) {
233
+ try {
234
+ throw new Error ( 'cause' ) ;
235
+ } catch ( c ) {
236
+ e . cause = c ;
237
+ captureException ( e ) ;
238
+ }
239
+ }
240
+ } ) ;
241
+
201
242
test ( 'capture a message' , done => {
202
243
expect . assertions ( 2 ) ;
203
244
getCurrentHub ( ) . bindClient (
0 commit comments