Skip to content

Commit 0889534

Browse files
authored
test(browser): Add integration tests for showReportDialog (#4354)
1 parent 1be2959 commit 0889534

File tree

4 files changed

+72
-0
lines changed

4 files changed

+72
-0
lines changed
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+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
Sentry.showReportDialog({
2+
eventId: 'test_id',
3+
user: {
4+
5+
name: 'test',
6+
},
7+
lang: 'en-nz',
8+
title: 'test_title',
9+
subtitle: 'test_subtitle',
10+
subtitle2: 'test_subtitle2',
11+
labelName: 'test_label_name',
12+
labelEmail: 'test_label_email',
13+
labelComments: 'test_label_comments',
14+
labelClose: 'test_label_close',
15+
labelSubmit: 'test_label_submit',
16+
errorGeneric: 'test_error_generic',
17+
errorFormEntry: 'test_error_form_entry',
18+
successMessage: 'test_success_message',
19+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { expect } from '@playwright/test';
2+
3+
import { sentryTest } from '../../../../utils/fixtures';
4+
5+
sentryTest('should inject dialog script into <head> with correct attributes', async ({ getLocalTestPath, page }) => {
6+
const url = await getLocalTestPath({ testDir: __dirname });
7+
8+
const dialogScriptSelector = 'head > script[src^="https://dsn.ingest.sentry.io/api/embed/error-page"]';
9+
10+
await page.goto(url);
11+
const dialogScript = await page.waitForSelector(dialogScriptSelector, { state: 'attached' });
12+
const dialogScriptSrc = await dialogScript.getAttribute('src');
13+
14+
expect(dialogScriptSrc?.startsWith('https://dsn.ingest.sentry.io/api/embed/error-page/?')).toBe(true);
15+
// After `?` is searchParams.
16+
17+
const searchParams = new URLSearchParams(new URL(dialogScriptSrc || '').searchParams);
18+
19+
expect(searchParams.get('dsn')).toBe('https://[email protected]/1337');
20+
expect(searchParams.get('eventId')).toBe('test_id');
21+
expect(searchParams.get('name')).toBe('test');
22+
expect(searchParams.get('email')).toBe('[email protected]');
23+
expect(searchParams.get('lang')).toBe('en-nz');
24+
expect(searchParams.get('title')).toBe('test_title');
25+
expect(searchParams.get('subtitle')).toBe('test_subtitle');
26+
expect(searchParams.get('subtitle2')).toBe('test_subtitle2');
27+
expect(searchParams.get('labelName')).toBe('test_label_name');
28+
expect(searchParams.get('labelEmail')).toBe('test_label_email');
29+
expect(searchParams.get('labelComments')).toBe('test_label_comments');
30+
expect(searchParams.get('labelClose')).toBe('test_label_close');
31+
expect(searchParams.get('labelSubmit')).toBe('test_label_submit');
32+
expect(searchParams.get('errorGeneric')).toBe('test_error_generic');
33+
expect(searchParams.get('errorFormEntry')).toBe('test_error_form_entry');
34+
expect(searchParams.get('successMessage')).toBe('test_success_message');
35+
});
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)