1
+ // tslint:disable:deprecation
2
+
1
3
import { Event , StackFrame } from '@sentry/types' ;
2
4
3
5
import { RewriteFrames } from '../src/rewriteframes' ;
4
6
5
7
let rewriteFrames : RewriteFrames ;
6
8
let messageEvent : Event ;
7
9
let exceptionEvent : Event ;
10
+ let threadEvent : Event ;
8
11
9
12
describe ( 'RewriteFrames' , ( ) => {
10
13
beforeEach ( ( ) => {
@@ -38,6 +41,22 @@ describe('RewriteFrames', () => {
38
41
] ,
39
42
} ,
40
43
} ;
44
+ threadEvent = {
45
+ threads : [
46
+ {
47
+ stacktrace : {
48
+ frames : [
49
+ {
50
+ filename : '/www/src/app/file1.js' ,
51
+ } ,
52
+ {
53
+ filename : '/www/src/app/file2.js' ,
54
+ } ,
55
+ ] ,
56
+ } ,
57
+ } ,
58
+ ] ,
59
+ } ;
41
60
} ) ;
42
61
43
62
describe ( 'default iteratee appends basename to `app:///` if frame starts with `/`' , ( ) => {
@@ -56,6 +75,12 @@ describe('RewriteFrames', () => {
56
75
expect ( event . exception ! . values ! [ 0 ] . stacktrace ! . frames ! [ 0 ] . filename ) . toEqual ( 'app:///file1.js' ) ;
57
76
expect ( event . exception ! . values ! [ 0 ] . stacktrace ! . frames ! [ 1 ] . filename ) . toEqual ( 'app:///file2.js' ) ;
58
77
} ) ;
78
+
79
+ it ( 'transforms threadEvent frames' , ( ) => {
80
+ const event = rewriteFrames . process ( threadEvent ) ;
81
+ expect ( event . threads ! [ 0 ] . stacktrace ! . frames ! [ 0 ] . filename ) . toEqual ( 'app:///file1.js' ) ;
82
+ expect ( event . threads ! [ 0 ] . stacktrace ! . frames ! [ 1 ] . filename ) . toEqual ( 'app:///file2.js' ) ;
83
+ } ) ;
59
84
} ) ;
60
85
61
86
describe ( 'can use custom root to perform `relative` on filepaths' , ( ) => {
@@ -76,6 +101,12 @@ describe('RewriteFrames', () => {
76
101
expect ( event . exception ! . values ! [ 0 ] . stacktrace ! . frames ! [ 0 ] . filename ) . toEqual ( 'app:///src/app/file1.js' ) ;
77
102
expect ( event . exception ! . values ! [ 0 ] . stacktrace ! . frames ! [ 1 ] . filename ) . toEqual ( 'app:///src/app/file2.js' ) ;
78
103
} ) ;
104
+
105
+ it ( 'transforms threadEvent frames' , async ( ) => {
106
+ const event = rewriteFrames . process ( threadEvent ) ;
107
+ expect ( event . threads ! [ 0 ] . stacktrace ! . frames ! [ 0 ] . filename ) . toEqual ( 'app:///src/app/file1.js' ) ;
108
+ expect ( event . threads ! [ 0 ] . stacktrace ! . frames ! [ 1 ] . filename ) . toEqual ( 'app:///src/app/file2.js' ) ;
109
+ } ) ;
79
110
} ) ;
80
111
81
112
describe ( 'can use custom iteratee' , ( ) => {
@@ -103,5 +134,13 @@ describe('RewriteFrames', () => {
103
134
expect ( event . exception ! . values ! [ 0 ] . stacktrace ! . frames ! [ 1 ] . filename ) . toEqual ( '/www/src/app/file2.js' ) ;
104
135
expect ( event . exception ! . values ! [ 0 ] . stacktrace ! . frames ! [ 1 ] . function ) . toEqual ( 'whoops' ) ;
105
136
} ) ;
137
+
138
+ it ( 'transforms threadEvent frames' , async ( ) => {
139
+ const event = rewriteFrames . process ( threadEvent ) ;
140
+ expect ( event . threads ! [ 0 ] . stacktrace ! . frames ! [ 0 ] . filename ) . toEqual ( '/www/src/app/file1.js' ) ;
141
+ expect ( event . threads ! [ 0 ] . stacktrace ! . frames ! [ 0 ] . function ) . toEqual ( 'whoops' ) ;
142
+ expect ( event . threads ! [ 0 ] . stacktrace ! . frames ! [ 1 ] . filename ) . toEqual ( '/www/src/app/file2.js' ) ;
143
+ expect ( event . threads ! [ 0 ] . stacktrace ! . frames ! [ 1 ] . function ) . toEqual ( 'whoops' ) ;
144
+ } ) ;
106
145
} ) ;
107
146
} ) ;
0 commit comments