Skip to content

Commit 0522caa

Browse files
authored
test(replay): Improve replay test mocks (#6313)
1 parent 7954cf3 commit 0522caa

File tree

4 files changed

+26
-27
lines changed

4 files changed

+26
-27
lines changed

packages/replay/__mocks__/@sentry/browser/index.ts

-12
This file was deleted.

packages/replay/test/mocks/mockRrweb.ts

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import type { record as rrwebRecord } from 'rrweb';
2+
13
import { RecordingEvent } from '../../src/types';
24

35
type RecordAdditionalProperties = {
@@ -12,7 +14,7 @@ type RecordAdditionalProperties = {
1214
_emitter: (event: RecordingEvent, ...args: any[]) => void;
1315
};
1416

15-
export type RecordMock = jest.MockedFunction<typeof rrweb.record> & RecordAdditionalProperties;
17+
export type RecordMock = jest.MockedFunction<typeof rrwebRecord> & RecordAdditionalProperties;
1618

1719
function createCheckoutPayload(isCheckout: boolean = true) {
1820
return {
@@ -22,8 +24,7 @@ function createCheckoutPayload(isCheckout: boolean = true) {
2224
};
2325
}
2426

25-
jest.mock('rrweb', () => {
26-
const ActualRrweb = jest.requireActual('rrweb');
27+
export function mockRrweb(): { record: RecordMock } {
2728
const mockRecordFn: jest.Mock & Partial<RecordAdditionalProperties> = jest.fn(({ emit }) => {
2829
mockRecordFn._emitter = emit;
2930

@@ -40,17 +41,16 @@ jest.mock('rrweb', () => {
4041
mockRecordFn._emitter(createCheckoutPayload(isCheckout), isCheckout);
4142
});
4243

43-
return {
44-
...ActualRrweb,
45-
record: mockRecordFn,
46-
};
47-
});
44+
jest.mock('rrweb', () => {
45+
const ActualRrweb = jest.requireActual('rrweb');
4846

49-
// XXX: Intended to be after `mock('rrweb')`
50-
import * as rrweb from 'rrweb';
47+
return {
48+
...ActualRrweb,
49+
record: mockRecordFn,
50+
};
51+
});
5152

52-
export function mockRrweb(): { record: RecordMock } {
5353
return {
54-
record: rrweb.record as RecordMock,
54+
record: mockRecordFn as RecordMock,
5555
};
5656
}

packages/replay/test/mocks/mockSdk.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
jest.unmock('@sentry/browser');
2-
3-
import { BrowserOptions, init } from '@sentry/browser';
1+
import type { BrowserOptions } from '@sentry/browser';
42
import { Envelope, Transport } from '@sentry/types';
53

64
import { Replay as ReplayClass } from '../../src';
@@ -49,6 +47,8 @@ export async function mockSdk({
4947
transport: () => new MockTransport(),
5048
},
5149
}: MockSdkParams = {}): Promise<{ replay: ReplayClass }> {
50+
const { init } = jest.requireActual('@sentry/browser');
51+
5252
const { Replay } = await import('../../src');
5353
const replay = new Replay(replayOptions);
5454

packages/replay/test/unit/session/Session.test.ts

+11
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
jest.mock('./../../../src/session/saveSession');
22

3+
jest.mock('@sentry/browser', () => {
4+
return {
5+
getCurrentHub: jest.fn(() => {
6+
return {
7+
captureEvent: jest.fn(),
8+
getClient: jest.fn(() => ({ getDsn: jest.fn() })),
9+
};
10+
}),
11+
};
12+
});
13+
314
import * as Sentry from '@sentry/browser';
415

516
import { saveSession } from '../../../src/session/saveSession';

0 commit comments

Comments
 (0)