1+ import type { record as rrwebRecord } from 'rrweb' ;
2+
13import { RecordingEvent } from '../../src/types' ;
24
35type 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
1719function 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}
0 commit comments