1
+ import type { record as rrwebRecord } from 'rrweb' ;
2
+
1
3
import { RecordingEvent } from '../../src/types' ;
2
4
3
5
type RecordAdditionalProperties = {
@@ -12,7 +14,7 @@ type RecordAdditionalProperties = {
12
14
_emitter : ( event : RecordingEvent , ...args : any [ ] ) => void ;
13
15
} ;
14
16
15
- export type RecordMock = jest . MockedFunction < typeof rrweb . record > & RecordAdditionalProperties ;
17
+ export type RecordMock = jest . MockedFunction < typeof rrwebRecord > & RecordAdditionalProperties ;
16
18
17
19
function createCheckoutPayload ( isCheckout : boolean = true ) {
18
20
return {
@@ -22,8 +24,7 @@ function createCheckoutPayload(isCheckout: boolean = true) {
22
24
} ;
23
25
}
24
26
25
- jest . mock ( 'rrweb' , ( ) => {
26
- const ActualRrweb = jest . requireActual ( 'rrweb' ) ;
27
+ export function mockRrweb ( ) : { record : RecordMock } {
27
28
const mockRecordFn : jest . Mock & Partial < RecordAdditionalProperties > = jest . fn ( ( { emit } ) => {
28
29
mockRecordFn . _emitter = emit ;
29
30
@@ -40,17 +41,16 @@ jest.mock('rrweb', () => {
40
41
mockRecordFn . _emitter ( createCheckoutPayload ( isCheckout ) , isCheckout ) ;
41
42
} ) ;
42
43
43
- return {
44
- ...ActualRrweb ,
45
- record : mockRecordFn ,
46
- } ;
47
- } ) ;
44
+ jest . mock ( 'rrweb' , ( ) => {
45
+ const ActualRrweb = jest . requireActual ( 'rrweb' ) ;
48
46
49
- // XXX: Intended to be after `mock('rrweb')`
50
- import * as rrweb from 'rrweb' ;
47
+ return {
48
+ ...ActualRrweb ,
49
+ record : mockRecordFn ,
50
+ } ;
51
+ } ) ;
51
52
52
- export function mockRrweb ( ) : { record : RecordMock } {
53
53
return {
54
- record : rrweb . record as RecordMock ,
54
+ record : mockRecordFn as RecordMock ,
55
55
} ;
56
56
}
0 commit comments