Skip to content

Commit d68ab17

Browse files
authored
test: Add test for manual client usage (#9567)
While debugging something, figured it is good to have a test covering that this works as expected! See also: getsentry/sentry-docs#8495
1 parent ade4c1d commit d68ab17

File tree

2 files changed

+85
-0
lines changed
  • packages/browser-integration-tests/suites/manual-client/browser-context

2 files changed

+85
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import {
2+
BrowserClient,
3+
Breadcrumbs,
4+
Dedupe,
5+
FunctionToString,
6+
HttpContext,
7+
InboundFilters,
8+
LinkedErrors,
9+
defaultStackParser,
10+
makeFetchTransport,
11+
Hub,
12+
} from '@sentry/browser';
13+
14+
const integrations = [
15+
new Breadcrumbs(),
16+
new FunctionToString(),
17+
new Dedupe(),
18+
new HttpContext(),
19+
new InboundFilters(),
20+
new LinkedErrors(),
21+
];
22+
23+
const client = new BrowserClient({
24+
dsn: 'https://[email protected]/1337',
25+
release: '0.0.1',
26+
environment: 'local',
27+
sampleRate: 1.0,
28+
tracesSampleRate: 0.0,
29+
transport: makeFetchTransport,
30+
stackParser: defaultStackParser,
31+
integrations,
32+
debug: true,
33+
});
34+
35+
const hub = new Hub(client);
36+
37+
hub.captureException(new Error('test client'));
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
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('allows to setup a client manually & capture exceptions', async ({ getLocalTestUrl, page }) => {
8+
const url = await getLocalTestUrl({ testDir: __dirname });
9+
10+
const eventData = await getFirstSentryEnvelopeRequest<Event>(page, url);
11+
12+
expect(eventData).toEqual({
13+
exception: {
14+
values: [
15+
expect.objectContaining({
16+
type: 'Error',
17+
value: 'test client',
18+
mechanism: {
19+
type: 'generic',
20+
handled: true,
21+
},
22+
stacktrace: {
23+
frames: expect.any(Array),
24+
},
25+
}),
26+
],
27+
},
28+
level: 'error',
29+
event_id: expect.any(String),
30+
platform: 'javascript',
31+
request: {
32+
url,
33+
headers: expect.objectContaining({
34+
'User-Agent': expect.any(String),
35+
}),
36+
},
37+
timestamp: expect.any(Number),
38+
environment: 'local',
39+
release: '0.0.1',
40+
sdk: {
41+
integrations: ['Breadcrumbs', 'FunctionToString', 'Dedupe', 'HttpContext', 'InboundFilters', 'LinkedErrors'],
42+
name: 'sentry.javascript.browser',
43+
version: expect.any(String),
44+
packages: [{ name: expect.any(String), version: expect.any(String) }],
45+
},
46+
contexts: { trace: { trace_id: expect.any(String), span_id: expect.any(String) } },
47+
});
48+
});

0 commit comments

Comments
 (0)