File tree Expand file tree Collapse file tree 4 files changed +91
-0
lines changed
browser-integration-tests/suites/public-api/withScope/throwError
node-integration-tests/suites/express/handle-error-withScope Expand file tree Collapse file tree 4 files changed +91
-0
lines changed Original file line number Diff line number Diff line change
1
+ Sentry . setTag ( 'global' , 'tag' ) ;
2
+ setTimeout ( ( ) => {
3
+ Sentry . withScope ( scope => {
4
+ scope . setTag ( 'local' , 'tag' ) ;
5
+ throw new Error ( 'test error' ) ;
6
+ } ) ;
7
+ } , 10 ) ;
Original file line number Diff line number Diff line change
1
+ import { expect } from '@playwright/test' ;
2
+ import type { Event } from '@sentry/types' ;
3
+
4
+ import { sentryTest } from '../../../../utils/fixtures' ;
5
+ import { getFirstSentryEnvelopeRequest } from '../../../../utils/helpers' ;
6
+
7
+ sentryTest ( 'scope is applied to thrown error' , async ( { getLocalTestPath, page } ) => {
8
+ const url = await getLocalTestPath ( { testDir : __dirname } ) ;
9
+
10
+ const eventData = await getFirstSentryEnvelopeRequest < Event > ( page , url ) ;
11
+
12
+ const ex = eventData . exception ?. values ? eventData . exception . values [ 0 ] : undefined ;
13
+
14
+ expect ( eventData . tags ) . toMatchObject ( { global : 'tag' , local : 'tag' } ) ;
15
+ expect ( ex ?. value ) . toBe ( 'test error' ) ;
16
+ } ) ;
Original file line number Diff line number Diff line change
1
+ import { loggingTransport , startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests' ;
2
+ import * as Sentry from '@sentry/node-experimental' ;
3
+ import express from 'express' ;
4
+
5
+ const app = express ( ) ;
6
+
7
+ Sentry . init ( {
8
+ dsn :
'https://[email protected] /1337' ,
9
+ release : '1.0' ,
10
+ transport : loggingTransport ,
11
+ } ) ;
12
+
13
+ app . use ( Sentry . Handlers . requestHandler ( ) ) ;
14
+
15
+ Sentry . setTag ( 'global' , 'tag' ) ;
16
+
17
+ app . get ( '/test/express' , ( ) => {
18
+ Sentry . withScope ( scope => {
19
+ scope . setTag ( 'local' , 'tag' ) ;
20
+ throw new Error ( 'test_error' ) ;
21
+ } )
22
+ } ) ;
23
+
24
+ app . use ( Sentry . Handlers . errorHandler ( ) ) ;
25
+
26
+ startExpressServerAndSendPortToRunner ( app ) ;
Original file line number Diff line number Diff line change
1
+ import { cleanupChildProcesses , createRunner } from '../../../utils/runner' ;
2
+
3
+ afterAll ( ( ) => {
4
+ cleanupChildProcesses ( ) ;
5
+ } ) ;
6
+
7
+ test ( 'applies withScope scope to thrown error' , done => {
8
+ const runner = createRunner ( __dirname , 'server.ts' )
9
+ . ignore ( 'session' , 'sessions' )
10
+ . expect ( {
11
+ event : {
12
+ exception : {
13
+ values : [
14
+ {
15
+ mechanism : {
16
+ type : 'middleware' ,
17
+ handled : false ,
18
+ } ,
19
+ type : 'Error' ,
20
+ value : 'test_error' ,
21
+ stacktrace : {
22
+ frames : expect . arrayContaining ( [
23
+ expect . objectContaining ( {
24
+ function : expect . any ( String ) ,
25
+ lineno : expect . any ( Number ) ,
26
+ colno : expect . any ( Number ) ,
27
+ } ) ,
28
+ ] ) ,
29
+ } ,
30
+ } ,
31
+ ] ,
32
+ } ,
33
+ tags : {
34
+ 'global' : 'tag' ,
35
+ 'local' : 'tag' , // This tag is missing :(
36
+ }
37
+ } ,
38
+ } )
39
+ . start ( done ) ;
40
+
41
+ expect ( ( ) => runner . makeRequest ( 'get' , '/test/express' ) ) . rejects . toThrow ( ) ;
42
+ } ) ;
You can’t perform that action at this time.
0 commit comments