Skip to content

Commit c5127a0

Browse files
authored
feat(core): Add eventToSentryRequest test for optional event properties (#4396)
All properties in the `Event` interface are optional. This adds a test to make sure that `eventToSentryRequest`'s success doesn't depend on any of them being there.
1 parent 197c0be commit c5127a0

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

packages/core/test/lib/request.test.ts

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ import { initAPIDetails } from '../../src/api';
44
import { eventToSentryRequest, sessionToSentryRequest } from '../../src/request';
55

66
const ingestDsn = 'https://[email protected]/12312012';
7-
const ingestUrl =
7+
const storeUrl =
8+
'https://squirrelchasers.ingest.sentry.io/api/12312012/store/?sentry_key=dogsarebadatkeepingsecrets&sentry_version=7';
9+
const envelopeUrl =
810
'https://squirrelchasers.ingest.sentry.io/api/12312012/envelope/?sentry_key=dogsarebadatkeepingsecrets&sentry_version=7';
911
const tunnel = 'https://hello.com/world';
1012

@@ -136,7 +138,7 @@ describe('eventToSentryRequest', () => {
136138
expect(tunnelRequest.url).toEqual(tunnel);
137139

138140
const defaultRequest = eventToSentryRequest(event, initAPIDetails(ingestDsn, {}));
139-
expect(defaultRequest.url).toEqual(ingestUrl);
141+
expect(defaultRequest.url).toEqual(envelopeUrl);
140142
});
141143

142144
it('adds dsn to envelope header if tunnel is configured', () => {
@@ -171,6 +173,20 @@ describe('eventToSentryRequest', () => {
171173

172174
expect(envelope.event.processingMetadata).toBeUndefined();
173175
});
176+
177+
it("doesn't depend on optional event fields for success ", () => {
178+
// all event fields are optional
179+
const emptyEvent = {};
180+
181+
const result = eventToSentryRequest(emptyEvent, api);
182+
expect(result).toEqual({
183+
// The body isn't empty because SDK info gets added in `eventToSentryRequest`. (The specifics of that SDK info are
184+
// tested elsewhere.)
185+
body: expect.any(String),
186+
type: 'event',
187+
url: storeUrl,
188+
});
189+
});
174190
});
175191

176192
describe('sessionToSentryRequest', () => {
@@ -206,7 +222,7 @@ describe('sessionToSentryRequest', () => {
206222
expect(tunnelRequest.url).toEqual(tunnel);
207223

208224
const defaultRequest = sessionToSentryRequest({ aggregates: [] }, initAPIDetails(ingestDsn, {}));
209-
expect(defaultRequest.url).toEqual(ingestUrl);
225+
expect(defaultRequest.url).toEqual(envelopeUrl);
210226
});
211227

212228
it('adds dsn to envelope header if tunnel is configured', () => {

0 commit comments

Comments
 (0)