Skip to content

Commit 74d2755

Browse files
authored
test(browser): Add integration tests for withScope (#4342)
1 parent 4bb83e0 commit 74d2755

File tree

4 files changed

+66
-0
lines changed

4 files changed

+66
-0
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import * as Sentry from '@sentry/browser';
2+
3+
window.Sentry = Sentry;
4+
5+
Sentry.init({
6+
dsn: 'https://[email protected]/1337',
7+
});
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
Sentry.setUser({ id: 'qux' });
2+
Sentry.captureMessage('root_before');
3+
4+
Sentry.withScope(scope => {
5+
scope.setTag('foo', false);
6+
Sentry.captureMessage('outer_before');
7+
8+
Sentry.withScope(scope => {
9+
scope.setTag('bar', 10);
10+
scope.setUser(null);
11+
Sentry.captureMessage('inner');
12+
});
13+
14+
scope.setUser({ id: 'baz' });
15+
Sentry.captureMessage('outer_after');
16+
});
17+
18+
Sentry.captureMessage('root_after');
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { expect } from '@playwright/test';
2+
3+
import { sentryTest } from '../../../../utils/fixtures';
4+
import { getMultipleSentryRequests } from '../../../../utils/helpers';
5+
6+
sentryTest('should allow nested scoping', async ({ getLocalTestPath, page }) => {
7+
const url = await getLocalTestPath({ testDir: __dirname });
8+
9+
const eventData = await getMultipleSentryRequests(page, 5, url);
10+
11+
expect(eventData[0].message).toBe('root_before');
12+
expect(eventData[0].user).toMatchObject({ id: 'qux' });
13+
expect(eventData[0].tags).toBeUndefined();
14+
15+
expect(eventData[1].message).toBe('outer_before');
16+
expect(eventData[1].user).toMatchObject({ id: 'qux' });
17+
expect(eventData[1].tags).toMatchObject({ foo: false });
18+
19+
expect(eventData[2].message).toBe('inner');
20+
expect(eventData[2].user).toBeUndefined();
21+
expect(eventData[2].tags).toMatchObject({ foo: false, bar: 10 });
22+
23+
expect(eventData[3].message).toBe('outer_after');
24+
expect(eventData[3].user).toMatchObject({ id: 'baz' });
25+
expect(eventData[3].tags).toMatchObject({ foo: false });
26+
27+
expect(eventData[4].message).toBe('root_after');
28+
expect(eventData[4].user).toMatchObject({ id: 'qux' });
29+
expect(eventData[4].tags).toBeUndefined();
30+
});
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8" />
5+
<title></title>
6+
<script src="{{htmlWebpackPlugin.options.initialization}}"></script>
7+
</head>
8+
<body>
9+
<script src="{{htmlWebpackPlugin.options.subject}}"></script>
10+
</body>
11+
</html>

0 commit comments

Comments
 (0)