Skip to content

Commit 4464ec0

Browse files
committed
new test
1 parent cb8b673 commit 4464ec0

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

tests/before-send.test.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,27 @@ describe('beforeSend processing', () => {
161161
expect(payload.backtrace).toBeInstanceOf(Array);
162162
});
163163

164+
it('still sends event when structuredClone throws (non-cloneable payload)', () => {
165+
// Arrange
166+
initWithBeforeSend((event) => event);
167+
const cloneSpy = vi.spyOn(globalThis, 'structuredClone').mockImplementation(() => {
168+
throw new DOMException('could not be cloned', 'DataCloneError');
169+
});
170+
171+
// Act
172+
HawkCatcher.send(new Error('non-cloneable'));
173+
174+
// Assert — event is still sent, reporting didn't crash
175+
expect(axios.post).toHaveBeenCalledOnce();
176+
177+
const payload = getSentPayload();
178+
179+
expect(payload.title).toBe('Error: non-cloneable');
180+
expect(payload.backtrace).toBeInstanceOf(Array);
181+
182+
cloneSpy.mockRestore();
183+
});
184+
164185
it('sends event without optional fields when beforeSend deletes them', () => {
165186
initWithBeforeSend((event) => {
166187
delete event.release;

0 commit comments

Comments
 (0)