@interfere/next 0.0.0-alpha.10 → 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/__tests__/build/with-interfere-coverage.test.d.ts +2 -0
- package/dist/__tests__/build/with-interfere-coverage.test.d.ts.map +1 -0
- package/dist/__tests__/build/with-interfere-coverage.test.js +338 -0
- package/dist/__tests__/build/with-interfere-coverage.test.js.map +1 -0
- package/dist/__tests__/build/with-interfere.test.d.ts +2 -0
- package/dist/__tests__/build/with-interfere.test.d.ts.map +1 -0
- package/dist/__tests__/build/with-interfere.test.js +466 -0
- package/dist/__tests__/build/with-interfere.test.js.map +1 -0
- package/dist/__tests__/core/client.test.d.ts +2 -0
- package/dist/__tests__/core/client.test.d.ts.map +1 -0
- package/dist/__tests__/core/client.test.js +373 -0
- package/dist/__tests__/core/client.test.js.map +1 -0
- package/dist/__tests__/core/debug.test.d.ts +2 -0
- package/dist/__tests__/core/debug.test.d.ts.map +1 -0
- package/dist/__tests__/core/debug.test.js +277 -0
- package/dist/__tests__/core/debug.test.js.map +1 -0
- package/dist/__tests__/core/encoders.test.d.ts +2 -0
- package/dist/__tests__/core/encoders.test.d.ts.map +1 -0
- package/dist/__tests__/core/encoders.test.js +56 -0
- package/dist/__tests__/core/encoders.test.js.map +1 -0
- package/dist/__tests__/core/persistence.test.d.ts +2 -0
- package/dist/__tests__/core/persistence.test.d.ts.map +1 -0
- package/dist/__tests__/core/persistence.test.js +129 -0
- package/dist/__tests__/core/persistence.test.js.map +1 -0
- package/dist/__tests__/core/rage-click.test.d.ts +2 -0
- package/dist/__tests__/core/rage-click.test.d.ts.map +1 -0
- package/dist/__tests__/core/rage-click.test.js +121 -0
- package/dist/__tests__/core/rage-click.test.js.map +1 -0
- package/dist/__tests__/core/session-manager.test.d.ts +2 -0
- package/dist/__tests__/core/session-manager.test.d.ts.map +1 -0
- package/dist/__tests__/core/session-manager.test.js +1132 -0
- package/dist/__tests__/core/session-manager.test.js.map +1 -0
- package/dist/__tests__/integration/release-upload.test.d.ts +2 -0
- package/dist/__tests__/integration/release-upload.test.d.ts.map +1 -0
- package/dist/__tests__/integration/release-upload.test.js +173 -0
- package/dist/__tests__/integration/release-upload.test.js.map +1 -0
- package/dist/__tests__/react/provider.test.d.ts +2 -0
- package/dist/__tests__/react/provider.test.d.ts.map +1 -0
- package/dist/__tests__/react/provider.test.jsx +166 -0
- package/dist/__tests__/react/provider.test.jsx.map +1 -0
- package/dist/__tests__/session/persistence.test.d.ts +2 -0
- package/dist/__tests__/session/persistence.test.d.ts.map +1 -0
- package/dist/__tests__/session/persistence.test.js +129 -0
- package/dist/__tests__/session/persistence.test.js.map +1 -0
- package/dist/__tests__/session/replay.test.d.ts +2 -0
- package/dist/__tests__/session/replay.test.d.ts.map +1 -0
- package/dist/__tests__/session/replay.test.js +296 -0
- package/dist/__tests__/session/replay.test.js.map +1 -0
- package/dist/__tests__/session/session-summary.test.d.ts +2 -0
- package/dist/__tests__/session/session-summary.test.d.ts.map +1 -0
- package/dist/__tests__/session/session-summary.test.js +763 -0
- package/dist/__tests__/session/session-summary.test.js.map +1 -0
- package/dist/build/index.d.ts +3 -0
- package/dist/build/index.d.ts.map +1 -0
- package/dist/build/index.js +2 -0
- package/dist/build/index.js.map +1 -0
- package/dist/build/with-interfere.d.ts +54 -0
- package/dist/build/with-interfere.d.ts.map +1 -0
- package/dist/build/with-interfere.js +267 -0
- package/dist/build/with-interfere.js.map +1 -0
- package/dist/core/client-core.d.ts +27 -0
- package/dist/core/client-core.d.ts.map +1 -0
- package/dist/core/client-core.js +164 -0
- package/dist/core/client-core.js.map +1 -0
- package/dist/core/client.d.ts +70 -18
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +112 -104
- package/dist/core/client.js.map +1 -1
- package/dist/core/client.test.js +227 -92
- package/dist/core/client.test.js.map +1 -1
- package/dist/core/constants.d.ts +12 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +17 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/debug.d.ts +47 -0
- package/dist/core/debug.d.ts.map +1 -0
- package/dist/core/debug.js +79 -0
- package/dist/core/debug.js.map +1 -0
- package/dist/core/encoders.test.js +20 -19
- package/dist/core/encoders.test.js.map +1 -1
- package/dist/core/error-handlers.d.ts.map +1 -1
- package/dist/core/error-handlers.js +42 -41
- package/dist/core/error-handlers.js.map +1 -1
- package/dist/core/runtime.d.ts +7 -0
- package/dist/core/runtime.d.ts.map +1 -0
- package/dist/core/runtime.js +16 -0
- package/dist/core/runtime.js.map +1 -0
- package/dist/index.d.ts +10 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -7
- package/dist/index.js.map +1 -1
- package/dist/next/error-boundary.d.ts +5 -5
- package/dist/next/error-boundary.d.ts.map +1 -1
- package/dist/next/error-boundary.jsx +5 -5
- package/dist/next/middleware.d.ts +1 -1
- package/dist/next/middleware.js +13 -13
- package/dist/persistence/index.d.ts +5 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +67 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/storage.d.ts +5 -0
- package/dist/persistence/storage.d.ts.map +1 -0
- package/dist/persistence/storage.js +67 -0
- package/dist/persistence/storage.js.map +1 -0
- package/dist/react/provider.d.ts +9 -5
- package/dist/react/provider.d.ts.map +1 -1
- package/dist/react/provider.jsx +33 -10
- package/dist/react/provider.jsx.map +1 -1
- package/dist/session/constants.d.ts +19 -0
- package/dist/session/constants.d.ts.map +1 -0
- package/dist/session/constants.js +34 -0
- package/dist/session/constants.js.map +1 -0
- package/dist/session/persistence.d.ts +58 -0
- package/dist/session/persistence.d.ts.map +1 -0
- package/dist/session/persistence.js +180 -0
- package/dist/session/persistence.js.map +1 -0
- package/dist/session/persistence.test.d.ts +2 -0
- package/dist/session/persistence.test.d.ts.map +1 -0
- package/dist/session/persistence.test.js +129 -0
- package/dist/session/persistence.test.js.map +1 -0
- package/dist/session/rage-click.d.ts +17 -0
- package/dist/session/rage-click.d.ts.map +1 -0
- package/dist/session/rage-click.js +104 -0
- package/dist/session/rage-click.js.map +1 -0
- package/dist/session/rage-click.test.d.ts +2 -0
- package/dist/session/rage-click.test.d.ts.map +1 -0
- package/dist/session/rage-click.test.js +124 -0
- package/dist/session/rage-click.test.js.map +1 -0
- package/dist/session/replay.d.ts +2 -2
- package/dist/session/replay.d.ts.map +1 -1
- package/dist/session/replay.js +57 -24
- package/dist/session/replay.js.map +1 -1
- package/dist/session/session-manager.d.ts +126 -0
- package/dist/session/session-manager.d.ts.map +1 -0
- package/dist/session/session-manager.js +635 -0
- package/dist/session/session-manager.js.map +1 -0
- package/dist/session/session-manager.test.d.ts +2 -0
- package/dist/session/session-manager.test.d.ts.map +1 -0
- package/dist/session/session-manager.test.js +1134 -0
- package/dist/session/session-manager.test.js.map +1 -0
- package/dist/session/session-summary.d.ts +2 -2
- package/dist/session/session-summary.d.ts.map +1 -1
- package/dist/session/session-summary.js +94 -47
- package/dist/session/session-summary.js.map +1 -1
- package/dist/storage/index.d.ts +5 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +67 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/types/storage.d.ts +7 -0
- package/dist/types/storage.d.ts.map +1 -0
- package/dist/types/storage.js +2 -0
- package/dist/types/storage.js.map +1 -0
- package/package.json +24 -7
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { setupReplay, stopReplay } from "../../session/replay.js";
|
|
3
|
+
// Mock the capture and flush functions
|
|
4
|
+
vi.mock("../../core/client.js", () => ({
|
|
5
|
+
capture: vi.fn(),
|
|
6
|
+
flush: vi.fn(),
|
|
7
|
+
}));
|
|
8
|
+
// Mock constants
|
|
9
|
+
vi.mock("../../session/constants.js", () => ({
|
|
10
|
+
REPLAY_CHUNK_MS: 1000,
|
|
11
|
+
REPLAY_ENABLED: true,
|
|
12
|
+
}));
|
|
13
|
+
// Mock rrweb modules
|
|
14
|
+
const mockRecord = vi.fn();
|
|
15
|
+
const mockPack = vi.fn();
|
|
16
|
+
vi.mock("rrweb", () => ({
|
|
17
|
+
default: {
|
|
18
|
+
record: mockRecord,
|
|
19
|
+
},
|
|
20
|
+
record: mockRecord,
|
|
21
|
+
}));
|
|
22
|
+
vi.mock("@rrweb/packer", () => ({
|
|
23
|
+
pack: mockPack,
|
|
24
|
+
}));
|
|
25
|
+
// Mock browser APIs
|
|
26
|
+
const mockWindow = {
|
|
27
|
+
addEventListener: vi.fn(),
|
|
28
|
+
removeEventListener: vi.fn(),
|
|
29
|
+
setInterval: vi.fn(() => 123),
|
|
30
|
+
clearInterval: vi.fn(),
|
|
31
|
+
};
|
|
32
|
+
const mockDocument = {
|
|
33
|
+
addEventListener: vi.fn(),
|
|
34
|
+
removeEventListener: vi.fn(),
|
|
35
|
+
visibilityState: "visible",
|
|
36
|
+
};
|
|
37
|
+
// Mock global objects
|
|
38
|
+
Object.defineProperty(global, "window", {
|
|
39
|
+
value: mockWindow,
|
|
40
|
+
writable: true,
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(global, "document", {
|
|
43
|
+
value: mockDocument,
|
|
44
|
+
writable: true,
|
|
45
|
+
});
|
|
46
|
+
describe("replay", () => {
|
|
47
|
+
beforeEach(() => {
|
|
48
|
+
vi.clearAllMocks();
|
|
49
|
+
// Reset module state
|
|
50
|
+
stopReplay();
|
|
51
|
+
});
|
|
52
|
+
afterEach(() => {
|
|
53
|
+
stopReplay();
|
|
54
|
+
});
|
|
55
|
+
describe("setupReplay", () => {
|
|
56
|
+
it("should not initialize if already started", () => {
|
|
57
|
+
setupReplay();
|
|
58
|
+
const importSpy = vi.spyOn(global, "import");
|
|
59
|
+
setupReplay();
|
|
60
|
+
// Should not import modules again
|
|
61
|
+
expect(importSpy).not.toHaveBeenCalled();
|
|
62
|
+
});
|
|
63
|
+
it("should not initialize in non-browser environment", () => {
|
|
64
|
+
// @ts-expect-error - Testing non-browser environment
|
|
65
|
+
delete global.window;
|
|
66
|
+
setupReplay();
|
|
67
|
+
expect(mockWindow.addEventListener).not.toHaveBeenCalled();
|
|
68
|
+
});
|
|
69
|
+
it("should not initialize if replay is disabled", async () => {
|
|
70
|
+
// Mock constants to disable replay
|
|
71
|
+
vi.doMock("../../session/constants.js", () => ({
|
|
72
|
+
REPLAY_CHUNK_MS: 1000,
|
|
73
|
+
REPLAY_ENABLED: false,
|
|
74
|
+
}));
|
|
75
|
+
setupReplay();
|
|
76
|
+
expect(mockWindow.addEventListener).not.toHaveBeenCalled();
|
|
77
|
+
});
|
|
78
|
+
it("should set up replay recording", async () => {
|
|
79
|
+
const mockStopRecord = vi.fn();
|
|
80
|
+
mockRecord.mockReturnValue(mockStopRecord);
|
|
81
|
+
mockPack.mockReturnValue("packed-event");
|
|
82
|
+
setupReplay();
|
|
83
|
+
// Wait for async module loading
|
|
84
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
85
|
+
expect(mockRecord).toHaveBeenCalledWith({
|
|
86
|
+
emit: expect.any(Function),
|
|
87
|
+
maskAllInputs: true,
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
it("should handle rrweb import errors", async () => {
|
|
91
|
+
// Mock import to reject
|
|
92
|
+
vi.doMock("rrweb", () => {
|
|
93
|
+
throw new Error("Import error");
|
|
94
|
+
});
|
|
95
|
+
const consoleSpy = vi
|
|
96
|
+
.spyOn(console, "error")
|
|
97
|
+
.mockImplementation(() => { });
|
|
98
|
+
setupReplay();
|
|
99
|
+
// Wait for async processing
|
|
100
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
101
|
+
expect(consoleSpy).toHaveBeenCalledWith("Failed to load rrweb:", expect.any(Error));
|
|
102
|
+
consoleSpy.mockRestore();
|
|
103
|
+
});
|
|
104
|
+
it("should handle invalid rrweb record function", async () => {
|
|
105
|
+
// Mock rrweb to return invalid record
|
|
106
|
+
vi.doMock("rrweb", () => ({
|
|
107
|
+
default: {
|
|
108
|
+
record: "not-a-function",
|
|
109
|
+
},
|
|
110
|
+
record: "not-a-function",
|
|
111
|
+
}));
|
|
112
|
+
const consoleSpy = vi
|
|
113
|
+
.spyOn(console, "error")
|
|
114
|
+
.mockImplementation(() => { });
|
|
115
|
+
setupReplay();
|
|
116
|
+
// Wait for async processing
|
|
117
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
118
|
+
expect(consoleSpy).toHaveBeenCalledWith("rrweb.record is not available");
|
|
119
|
+
consoleSpy.mockRestore();
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
describe("event handling", () => {
|
|
123
|
+
beforeEach(async () => {
|
|
124
|
+
const mockStopRecord = vi.fn();
|
|
125
|
+
mockRecord.mockReturnValue(mockStopRecord);
|
|
126
|
+
mockPack.mockReturnValue("packed-event");
|
|
127
|
+
setupReplay();
|
|
128
|
+
// Wait for async module loading
|
|
129
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
130
|
+
});
|
|
131
|
+
it("should emit events when recorded", () => {
|
|
132
|
+
const { capture, flush } = require("../../core/client.js");
|
|
133
|
+
// Get the emit function from the record call
|
|
134
|
+
const recordCall = mockRecord.mock.calls[0];
|
|
135
|
+
const emitFunction = recordCall[0].emit;
|
|
136
|
+
// Emit a test event
|
|
137
|
+
emitFunction({ type: "test", timestamp: Date.now() });
|
|
138
|
+
// Should pack the event
|
|
139
|
+
expect(mockPack).toHaveBeenCalledWith({
|
|
140
|
+
type: "test",
|
|
141
|
+
timestamp: expect.any(Number),
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
it("should send chunks on interval", () => {
|
|
145
|
+
const { capture, flush } = require("../../core/client.js");
|
|
146
|
+
// Get the interval function
|
|
147
|
+
const intervalCall = mockWindow.setInterval.mock.calls[0];
|
|
148
|
+
const intervalFunction = intervalCall[0];
|
|
149
|
+
// Get the emit function
|
|
150
|
+
const recordCall = mockRecord.mock.calls[0];
|
|
151
|
+
const emitFunction = recordCall[0].emit;
|
|
152
|
+
// Emit some events
|
|
153
|
+
emitFunction({ type: "test1", timestamp: Date.now() });
|
|
154
|
+
emitFunction({ type: "test2", timestamp: Date.now() });
|
|
155
|
+
// Run the interval function
|
|
156
|
+
intervalFunction();
|
|
157
|
+
// Should capture and flush
|
|
158
|
+
expect(capture).toHaveBeenCalledWith("replay_chunk", {
|
|
159
|
+
version: 1,
|
|
160
|
+
chunkTs: expect.any(Number),
|
|
161
|
+
count: 2,
|
|
162
|
+
events: ["packed-event", "packed-event"],
|
|
163
|
+
});
|
|
164
|
+
expect(flush).toHaveBeenCalled();
|
|
165
|
+
});
|
|
166
|
+
it("should not send empty chunks", () => {
|
|
167
|
+
const { capture, flush } = require("../../core/client.js");
|
|
168
|
+
// Get the interval function
|
|
169
|
+
const intervalCall = mockWindow.setInterval.mock.calls[0];
|
|
170
|
+
const intervalFunction = intervalCall[0];
|
|
171
|
+
// Run the interval function without any events
|
|
172
|
+
intervalFunction();
|
|
173
|
+
// Should not capture anything
|
|
174
|
+
expect(capture).not.toHaveBeenCalled();
|
|
175
|
+
expect(flush).not.toHaveBeenCalled();
|
|
176
|
+
});
|
|
177
|
+
it("should handle capture errors gracefully", () => {
|
|
178
|
+
const { capture } = require("../../core/client.js");
|
|
179
|
+
capture.mockImplementation(() => {
|
|
180
|
+
throw new Error("Capture error");
|
|
181
|
+
});
|
|
182
|
+
// Get the interval function
|
|
183
|
+
const intervalCall = mockWindow.setInterval.mock.calls[0];
|
|
184
|
+
const intervalFunction = intervalCall[0];
|
|
185
|
+
// Get the emit function
|
|
186
|
+
const recordCall = mockRecord.mock.calls[0];
|
|
187
|
+
const emitFunction = recordCall[0].emit;
|
|
188
|
+
// Emit an event
|
|
189
|
+
emitFunction({ type: "test", timestamp: Date.now() });
|
|
190
|
+
// Run the interval function - should not throw
|
|
191
|
+
expect(() => intervalFunction()).not.toThrow();
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
describe("event listeners", () => {
|
|
195
|
+
beforeEach(async () => {
|
|
196
|
+
const mockStopRecord = vi.fn();
|
|
197
|
+
mockRecord.mockReturnValue(mockStopRecord);
|
|
198
|
+
mockPack.mockReturnValue("packed-event");
|
|
199
|
+
setupReplay();
|
|
200
|
+
// Wait for async module loading
|
|
201
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
202
|
+
});
|
|
203
|
+
it("should set up beforeunload listener", () => {
|
|
204
|
+
expect(mockWindow.addEventListener).toHaveBeenCalledWith("beforeunload", expect.any(Function));
|
|
205
|
+
});
|
|
206
|
+
it("should set up visibilitychange listener", () => {
|
|
207
|
+
expect(mockDocument.addEventListener).toHaveBeenCalledWith("visibilitychange", expect.any(Function));
|
|
208
|
+
});
|
|
209
|
+
it("should flush on beforeunload", () => {
|
|
210
|
+
const { capture, flush } = require("../../core/client.js");
|
|
211
|
+
// Get the beforeunload listener
|
|
212
|
+
const beforeUnloadCall = mockWindow.addEventListener.mock.calls.find((call) => call[0] === "beforeunload");
|
|
213
|
+
const beforeUnloadListener = beforeUnloadCall[1];
|
|
214
|
+
// Get the emit function
|
|
215
|
+
const recordCall = mockRecord.mock.calls[0];
|
|
216
|
+
const emitFunction = recordCall[0].emit;
|
|
217
|
+
// Emit an event
|
|
218
|
+
emitFunction({ type: "test", timestamp: Date.now() });
|
|
219
|
+
// Trigger beforeunload
|
|
220
|
+
beforeUnloadListener(new Event("beforeunload"));
|
|
221
|
+
// Should capture and flush
|
|
222
|
+
expect(capture).toHaveBeenCalled();
|
|
223
|
+
expect(flush).toHaveBeenCalled();
|
|
224
|
+
});
|
|
225
|
+
it("should flush on visibility change to hidden", () => {
|
|
226
|
+
const { capture, flush } = require("../../core/client.js");
|
|
227
|
+
// Mock document visibility state
|
|
228
|
+
mockDocument.visibilityState = "hidden";
|
|
229
|
+
// Get the visibilitychange listener
|
|
230
|
+
const visibilityCall = mockDocument.addEventListener.mock.calls.find((call) => call[0] === "visibilitychange");
|
|
231
|
+
const visibilityListener = visibilityCall[1];
|
|
232
|
+
// Get the emit function
|
|
233
|
+
const recordCall = mockRecord.mock.calls[0];
|
|
234
|
+
const emitFunction = recordCall[0].emit;
|
|
235
|
+
// Emit an event
|
|
236
|
+
emitFunction({ type: "test", timestamp: Date.now() });
|
|
237
|
+
// Trigger visibility change
|
|
238
|
+
visibilityListener(new Event("visibilitychange"));
|
|
239
|
+
// Should capture and flush
|
|
240
|
+
expect(capture).toHaveBeenCalled();
|
|
241
|
+
expect(flush).toHaveBeenCalled();
|
|
242
|
+
});
|
|
243
|
+
it("should not flush on visibility change to visible", () => {
|
|
244
|
+
const { capture, flush } = require("../../core/client.js");
|
|
245
|
+
// Mock document visibility state
|
|
246
|
+
mockDocument.visibilityState = "visible";
|
|
247
|
+
// Get the visibilitychange listener
|
|
248
|
+
const visibilityCall = mockDocument.addEventListener.mock.calls.find((call) => call[0] === "visibilitychange");
|
|
249
|
+
const visibilityListener = visibilityCall[1];
|
|
250
|
+
// Trigger visibility change
|
|
251
|
+
visibilityListener(new Event("visibilitychange"));
|
|
252
|
+
// Should not capture or flush
|
|
253
|
+
expect(capture).not.toHaveBeenCalled();
|
|
254
|
+
expect(flush).not.toHaveBeenCalled();
|
|
255
|
+
});
|
|
256
|
+
});
|
|
257
|
+
describe("stopReplay", () => {
|
|
258
|
+
it("should clean up when no stop function exists", () => {
|
|
259
|
+
// Should not throw
|
|
260
|
+
expect(() => stopReplay()).not.toThrow();
|
|
261
|
+
});
|
|
262
|
+
it("should clean up all listeners and stop recording", async () => {
|
|
263
|
+
const mockStopRecord = vi.fn();
|
|
264
|
+
mockRecord.mockReturnValue(mockStopRecord);
|
|
265
|
+
mockPack.mockReturnValue("packed-event");
|
|
266
|
+
setupReplay();
|
|
267
|
+
// Wait for async module loading
|
|
268
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
269
|
+
stopReplay();
|
|
270
|
+
// Should call stop record function
|
|
271
|
+
expect(mockStopRecord).toHaveBeenCalled();
|
|
272
|
+
// Should clear interval
|
|
273
|
+
expect(mockWindow.clearInterval).toHaveBeenCalledWith(123);
|
|
274
|
+
// Should remove event listeners
|
|
275
|
+
expect(mockWindow.removeEventListener).toHaveBeenCalledWith("beforeunload", expect.any(Function));
|
|
276
|
+
expect(mockDocument.removeEventListener).toHaveBeenCalledWith("visibilitychange", expect.any(Function));
|
|
277
|
+
});
|
|
278
|
+
it("should handle cleanup errors gracefully", async () => {
|
|
279
|
+
const mockStopRecord = vi.fn(() => {
|
|
280
|
+
throw new Error("Stop error");
|
|
281
|
+
});
|
|
282
|
+
mockRecord.mockReturnValue(mockStopRecord);
|
|
283
|
+
mockPack.mockReturnValue("packed-event");
|
|
284
|
+
setupReplay();
|
|
285
|
+
// Wait for async module loading
|
|
286
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
287
|
+
// Mock clearInterval to throw
|
|
288
|
+
mockWindow.clearInterval.mockImplementation(() => {
|
|
289
|
+
throw new Error("Clear interval error");
|
|
290
|
+
});
|
|
291
|
+
// Should not throw
|
|
292
|
+
expect(() => stopReplay()).not.toThrow();
|
|
293
|
+
});
|
|
294
|
+
});
|
|
295
|
+
});
|
|
296
|
+
//# sourceMappingURL=replay.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay.test.js","sourceRoot":"","sources":["../../../src/__tests__/session/replay.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-summary.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/session/session-summary.test.ts"],"names":[],"mappings":""}
|