Skip to content

Commit e502382

Browse files
committed
Add integration tests for captureMessage
1 parent 1c3f85a commit e502382

File tree

10 files changed

+110
-0
lines changed

10 files changed

+110
-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: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Sentry.captureMessage('foo');
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { expect } from '@playwright/test';
2+
3+
import { sentryTest } from '../../../../utils/fixtures';
4+
import { getSentryRequest } from '../../../../utils/helpers';
5+
6+
sentryTest('should capture a simple message string', async ({ getLocalTestPath, page }) => {
7+
const url = await getLocalTestPath({ testDir: __dirname });
8+
9+
const eventData = await getSentryRequest(page, url);
10+
11+
expect(eventData.message).toBe('foo');
12+
expect(eventData.level).toBe('info');
13+
});
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>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import * as Sentry from '@sentry/browser';
2+
3+
window.Sentry = Sentry;
4+
5+
Sentry.init({
6+
dsn: 'https://[email protected]/1337',
7+
beforeSend: (event, hint) => {
8+
event.hint = hint;
9+
return event;
10+
},
11+
});
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Sentry.captureMessage('message_with_hint', { foo: 'bar', level: 'error' });
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { expect } from '@playwright/test';
2+
import { EventHint } from '@sentry/types';
3+
4+
import { sentryTest } from '../../../../utils/fixtures';
5+
import { getSentryRequest } from '../../../../utils/helpers';
6+
7+
sentryTest('should capture a message with provided hint', async ({ getLocalTestPath, page }) => {
8+
const url = await getLocalTestPath({ testDir: __dirname });
9+
const eventData = await getSentryRequest(page, url);
10+
11+
expect(eventData.message).toBe('message_with_hint');
12+
expect(eventData.level).toBe('error');
13+
expect((eventData as Event & { hint: EventHint }).hint.captureContext).toMatchObject({
14+
foo: 'bar',
15+
level: 'error',
16+
});
17+
});
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import * as Sentry from '@sentry/browser';
2+
3+
window.Sentry = Sentry;
4+
window.events = [];
5+
6+
Sentry.init({
7+
dsn: 'https://[email protected]/1337',
8+
beforeSend: event => {
9+
window.events.push(event);
10+
},
11+
});
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Sentry.captureMessage('debug_message', 'debug');
2+
Sentry.captureMessage('info_message', 'info');
3+
Sentry.captureMessage('warning_message', 'warning');
4+
Sentry.captureMessage('error_message', 'error');
5+
Sentry.captureMessage('fatal_message', 'fatal');
6+
Sentry.captureMessage('critical_message', 'critical');
7+
Sentry.captureMessage('log_message', 'log');
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import { expect } from '@playwright/test';
2+
3+
import { sentryTest } from '../../../../utils/fixtures';
4+
import { getSentryEvents } from '../../../../utils/helpers';
5+
6+
sentryTest('should capture with different severity levels', async ({ getLocalTestPath, page }) => {
7+
const url = await getLocalTestPath({ testDir: __dirname });
8+
9+
const events = await getSentryEvents(page, url);
10+
11+
expect(events[0].message).toBe('debug_message');
12+
expect(events[0].level).toBe('debug');
13+
14+
expect(events[1].message).toBe('info_message');
15+
expect(events[1].level).toBe('info');
16+
17+
expect(events[2].message).toBe('warning_message');
18+
expect(events[2].level).toBe('warning');
19+
20+
expect(events[3].message).toBe('error_message');
21+
expect(events[3].level).toBe('error');
22+
23+
expect(events[4].message).toBe('fatal_message');
24+
expect(events[4].level).toBe('fatal');
25+
26+
expect(events[5].message).toBe('critical_message');
27+
expect(events[5].level).toBe('critical');
28+
29+
expect(events[6].message).toBe('log_message');
30+
expect(events[6].level).toBe('log');
31+
});

0 commit comments

Comments
 (0)