From b509adcf78b1265e7a0ee2a0fd04a39ebb1285ae Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Fri, 25 Apr 2025 11:49:41 +0200 Subject: [PATCH 1/3] replay test changes --- .../test/integration/autoSaveSession.test.ts | 11 ++++----- .../beforeAddRecordingEvent.test.ts | 5 ++-- .../coreHandlers/handleAfterSendEvent.test.ts | 17 +++++++------ .../handleBeforeSendEvent.test.ts | 10 ++++---- .../coreHandlers/handleGlobalEvent.test.ts | 13 +++++----- .../test/integration/earlyEvents.test.ts | 12 +++++----- .../test/integration/errorSampleRate.test.ts | 12 +++++----- .../test/integration/eventBuffer.test.ts | 13 +++++----- .../test/integration/eventProcessors.test.ts | 14 +++++------ .../test/integration/events.test.ts | 8 +++---- .../test/integration/flush.test.ts | 6 ++--- .../test/integration/getReplayId.test.ts | 11 +++++---- .../test/integration/rateLimiting.test.ts | 16 ++++++------- .../test/integration/recordingMode.test.ts | 10 ++++---- .../test/integration/rrweb.test.ts | 11 +++++---- .../test/integration/sampling.test.ts | 11 +++++---- .../test/integration/sendReplayEvent.test.ts | 8 +++---- .../test/integration/session.test.ts | 14 +++++------ .../test/integration/start.test.ts | 14 +++++------ .../test/integration/stop.test.ts | 14 +++++------ .../unit/coreHandlers/handleClick.test.ts | 16 ++++++------- .../handleNetworkBreadcrumbs.test.ts | 16 ++++++------- .../util/addBreadcrumbEvent.test.ts | 13 +++++----- .../unit/coreHandlers/util/fetchUtils.test.ts | 12 +++++----- .../coreHandlers/util/networkUtils.test.ts | 11 +++++---- .../test/unit/util/addEvent.test.ts | 14 +++++------ .../unit/util/createPerformanceEntry.test.ts | 24 +++++++++---------- .../test/unit/util/debounce.test.ts | 12 +++++----- .../unit/util/handleRecordingEmit.test.ts | 17 +++++++------ .../test/unit/util/throttle.test.ts | 13 +++++----- .../test/utils/use-fake-timers.ts | 4 ---- 31 files changed, 190 insertions(+), 192 deletions(-) diff --git a/packages/replay-internal/test/integration/autoSaveSession.test.ts b/packages/replay-internal/test/integration/autoSaveSession.test.ts index b798f05b544d..cf8210b94047 100644 --- a/packages/replay-internal/test/integration/autoSaveSession.test.ts +++ b/packages/replay-internal/test/integration/autoSaveSession.test.ts @@ -2,17 +2,13 @@ * @vitest-environment jsdom */ -import { afterEach, describe, expect, test, vi } from 'vitest'; - +import '../utils/use-fake-timers'; import { EventType } from '@sentry-internal/rrweb'; - +import { afterEach, beforeAll, describe, expect, test, vi } from 'vitest'; import { saveSession } from '../../src/session/saveSession'; import type { RecordingEvent } from '../../src/types'; import { addEvent } from '../../src/util/addEvent'; import { resetSdkMock } from '../mocks/resetSdkMock'; -import { useFakeTimers } from '../utils/use-fake-timers'; - -useFakeTimers(); vi.mock('../../src/session/saveSession', () => { return { @@ -21,6 +17,9 @@ vi.mock('../../src/session/saveSession', () => { }); describe('Integration | autoSaveSession', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); afterEach(() => { vi.clearAllMocks(); }); diff --git a/packages/replay-internal/test/integration/beforeAddRecordingEvent.test.ts b/packages/replay-internal/test/integration/beforeAddRecordingEvent.test.ts index de15f1de9530..c6daff84246d 100644 --- a/packages/replay-internal/test/integration/beforeAddRecordingEvent.test.ts +++ b/packages/replay-internal/test/integration/beforeAddRecordingEvent.test.ts @@ -2,6 +2,7 @@ * @vitest-environment jsdom */ +import '../utils/use-fake-timers'; import type { MockInstance, MockedFunction } from 'vitest'; import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; @@ -17,9 +18,6 @@ import { createPerformanceSpans } from '../../src/util/createPerformanceSpans'; import * as SendReplayRequest from '../../src/util/sendReplayRequest'; import { BASE_TIMESTAMP, mockRrweb, mockSdk } from '../index'; import type { DomHandler } from '../types'; -import { useFakeTimers } from '../utils/use-fake-timers'; - -useFakeTimers(); type MockTransportSend = MockedFunction; @@ -32,6 +30,7 @@ describe('Integration | beforeAddRecordingEvent', () => { const { record: mockRecord } = mockRrweb(); beforeAll(async () => { + vi.useFakeTimers(); vi.setSystemTime(new Date(BASE_TIMESTAMP)); vi.spyOn(SentryBrowserUtils, 'addClickKeypressInstrumentationHandler').mockImplementation(handler => { domHandler = handler; diff --git a/packages/replay-internal/test/integration/coreHandlers/handleAfterSendEvent.test.ts b/packages/replay-internal/test/integration/coreHandlers/handleAfterSendEvent.test.ts index 4bfe99d95f20..0647031bca69 100644 --- a/packages/replay-internal/test/integration/coreHandlers/handleAfterSendEvent.test.ts +++ b/packages/replay-internal/test/integration/coreHandlers/handleAfterSendEvent.test.ts @@ -2,16 +2,11 @@ * @vitest-environment jsdom */ -import type { MockInstance } from 'vitest'; -import { afterEach, describe, expect, it, vi } from 'vitest'; - -import { useFakeTimers } from '../../utils/use-fake-timers'; - -useFakeTimers(); - -import { getClient } from '@sentry/core'; +import '../../utils/use-fake-timers'; import type { ErrorEvent, Event } from '@sentry/core'; - +import { getClient } from '@sentry/core'; +import type { MockInstance } from 'vitest'; +import { afterEach, beforeAll, describe, expect, it, vi } from 'vitest'; import { UNABLE_TO_SEND_REPLAY } from '../../../src/constants'; import { handleAfterSendEvent } from '../../../src/coreHandlers/handleAfterSendEvent'; import type { ReplayContainer } from '../../../src/replay'; @@ -22,6 +17,10 @@ import { resetSdkMock } from '../../mocks/resetSdkMock'; let replay: ReplayContainer; describe('Integration | coreHandlers | handleAfterSendEvent', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); + afterEach(() => { replay.stop(); }); diff --git a/packages/replay-internal/test/integration/coreHandlers/handleBeforeSendEvent.test.ts b/packages/replay-internal/test/integration/coreHandlers/handleBeforeSendEvent.test.ts index 3c555ddf6f82..5b59adaad221 100644 --- a/packages/replay-internal/test/integration/coreHandlers/handleBeforeSendEvent.test.ts +++ b/packages/replay-internal/test/integration/coreHandlers/handleBeforeSendEvent.test.ts @@ -2,18 +2,20 @@ * @vitest-environment jsdom */ -import { afterEach, describe, expect, it, vi } from 'vitest'; - +import '../../utils/use-fake-timers'; +import { afterEach, beforeAll, describe, expect, it, vi } from 'vitest'; import { handleBeforeSendEvent } from '../../../src/coreHandlers/handleBeforeSendEvent'; import type { ReplayContainer } from '../../../src/replay'; import { Error } from '../../fixtures/error'; import { resetSdkMock } from '../../mocks/resetSdkMock'; -import { useFakeTimers } from '../../utils/use-fake-timers'; -useFakeTimers(); let replay: ReplayContainer; describe('Integration | coreHandlers | handleBeforeSendEvent', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); + afterEach(() => { replay.stop(); }); diff --git a/packages/replay-internal/test/integration/coreHandlers/handleGlobalEvent.test.ts b/packages/replay-internal/test/integration/coreHandlers/handleGlobalEvent.test.ts index 5bab5ab1a715..93a492b1a275 100644 --- a/packages/replay-internal/test/integration/coreHandlers/handleGlobalEvent.test.ts +++ b/packages/replay-internal/test/integration/coreHandlers/handleGlobalEvent.test.ts @@ -2,11 +2,10 @@ * @vitest-environment jsdom */ -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; - -import { getClient } from '@sentry/core'; +import '../../utils/use-fake-timers'; import type { Event } from '@sentry/core'; - +import { getClient } from '@sentry/core'; +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { REPLAY_EVENT_NAME, SESSION_IDLE_EXPIRE_DURATION } from '../../../src/constants'; import { handleGlobalEventListener } from '../../../src/coreHandlers/handleGlobalEvent'; import type { ReplayContainer } from '../../../src/replay'; @@ -15,12 +14,14 @@ import * as resetReplayIdOnDynamicSamplingContextModule from '../../../src/util/ import { Error } from '../../fixtures/error'; import { Transaction } from '../../fixtures/transaction'; import { resetSdkMock } from '../../mocks/resetSdkMock'; -import { useFakeTimers } from '../../utils/use-fake-timers'; -useFakeTimers(); let replay: ReplayContainer; describe('Integration | coreHandlers | handleGlobalEvent', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); + beforeEach(async () => { ({ replay } = await resetSdkMock({ replayOptions: { diff --git a/packages/replay-internal/test/integration/earlyEvents.test.ts b/packages/replay-internal/test/integration/earlyEvents.test.ts index d89103166765..8ac9bbb87b18 100644 --- a/packages/replay-internal/test/integration/earlyEvents.test.ts +++ b/packages/replay-internal/test/integration/earlyEvents.test.ts @@ -1,16 +1,16 @@ /** * @vitest-environment jsdom */ - -import { beforeEach, describe, expect, it, vi } from 'vitest'; - +import '../utils/use-fake-timers'; +import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { BASE_TIMESTAMP } from '..'; import { resetSdkMock } from '../mocks/resetSdkMock'; -import { useFakeTimers } from '../utils/use-fake-timers'; - -useFakeTimers(); describe('Integration | early events', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); + beforeEach(() => { vi.clearAllMocks(); }); diff --git a/packages/replay-internal/test/integration/errorSampleRate.test.ts b/packages/replay-internal/test/integration/errorSampleRate.test.ts index e81d9df1b43d..6ccd8dc0cd2b 100644 --- a/packages/replay-internal/test/integration/errorSampleRate.test.ts +++ b/packages/replay-internal/test/integration/errorSampleRate.test.ts @@ -2,10 +2,9 @@ * @vitest-environment jsdom */ -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; - +import '../utils/use-fake-timers'; import { captureException, getClient } from '@sentry/core'; - +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { BUFFER_CHECKOUT_TIME, DEFAULT_FLUSH_MIN_DELAY, @@ -24,9 +23,6 @@ import { BASE_TIMESTAMP } from '../index'; import { resetSdkMock } from '../mocks/resetSdkMock'; import type { DomHandler } from '../types'; import { getTestEventCheckout, getTestEventIncremental } from '../utils/getTestEvent'; -import { useFakeTimers } from '../utils/use-fake-timers'; - -useFakeTimers(); async function advanceTimers(time: number) { vi.advanceTimersByTime(time); @@ -43,6 +39,10 @@ describe('Integration | errorSampleRate', () => { let mockRecord: RecordMock; let domHandler: DomHandler; + beforeAll(() => { + vi.useFakeTimers(); + }); + beforeEach(async () => { ({ mockRecord, domHandler, replay } = await resetSdkMock({ replayOptions: { diff --git a/packages/replay-internal/test/integration/eventBuffer.test.ts b/packages/replay-internal/test/integration/eventBuffer.test.ts index bc796516acf8..0b9950c54e41 100644 --- a/packages/replay-internal/test/integration/eventBuffer.test.ts +++ b/packages/replay-internal/test/integration/eventBuffer.test.ts @@ -2,25 +2,24 @@ * @vitest-environment jsdom */ -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; - +import '../utils/use-fake-timers'; +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { WINDOW } from '../../src/constants'; import type { Replay } from '../../src/integration'; import type { ReplayContainer } from '../../src/replay'; import { addEvent } from '../../src/util/addEvent'; - -// mock functions need to be imported first import { BASE_TIMESTAMP, mockSdk } from '../index'; import { getTestEventCheckout, getTestEventIncremental } from '../utils/getTestEvent'; -import { useFakeTimers } from '../utils/use-fake-timers'; - -useFakeTimers(); describe('Integration | eventBuffer | Event Buffer Max Size', () => { let replay: ReplayContainer; let integration: Replay; const prevLocation = WINDOW.location; + beforeAll(() => { + vi.useFakeTimers(); + }); + beforeEach(async () => { vi.setSystemTime(new Date(BASE_TIMESTAMP)); diff --git a/packages/replay-internal/test/integration/eventProcessors.test.ts b/packages/replay-internal/test/integration/eventProcessors.test.ts index 26ae88364a61..615fffcb4d23 100644 --- a/packages/replay-internal/test/integration/eventProcessors.test.ts +++ b/packages/replay-internal/test/integration/eventProcessors.test.ts @@ -2,19 +2,19 @@ * @vitest-environment jsdom */ -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; - -import { getClient, getCurrentScope } from '@sentry/core'; +import '../utils/use-fake-timers'; import type { Event } from '@sentry/core'; - +import { getClient, getCurrentScope } from '@sentry/core'; +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { BASE_TIMESTAMP } from '..'; import { resetSdkMock } from '../mocks/resetSdkMock'; import { getTestEventIncremental } from '../utils/getTestEvent'; -import { useFakeTimers } from '../utils/use-fake-timers'; - -useFakeTimers(); describe('Integration | eventProcessors', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); + beforeEach(() => { getCurrentScope().clear(); getCurrentScope().setClient(undefined); diff --git a/packages/replay-internal/test/integration/events.test.ts b/packages/replay-internal/test/integration/events.test.ts index 5a9813238628..765e9c104150 100644 --- a/packages/replay-internal/test/integration/events.test.ts +++ b/packages/replay-internal/test/integration/events.test.ts @@ -2,6 +2,8 @@ * @vitest-environment jsdom */ +import '../utils/use-fake-timers'; +import { getClient } from '@sentry/core'; import type { MockInstance } from 'vitest'; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; @@ -16,9 +18,6 @@ import type { RecordMock } from '../index'; import { BASE_TIMESTAMP } from '../index'; import { resetSdkMock } from '../mocks/resetSdkMock'; import { getTestEventCheckout } from '../utils/getTestEvent'; -import { useFakeTimers } from '../utils/use-fake-timers'; - -useFakeTimers(); async function advanceTimers(time: number) { vi.advanceTimersByTime(time); @@ -32,8 +31,9 @@ describe('Integration | events', () => { const prevLocation = WINDOW.location; beforeAll(async () => { + vi.useFakeTimers(); vi.setSystemTime(new Date(BASE_TIMESTAMP)); - vi.runAllTimers(); + vi.runAllTimers(); // TODO??? }); beforeEach(async () => { diff --git a/packages/replay-internal/test/integration/flush.test.ts b/packages/replay-internal/test/integration/flush.test.ts index 843fe6ceedfd..9d05b20af90c 100644 --- a/packages/replay-internal/test/integration/flush.test.ts +++ b/packages/replay-internal/test/integration/flush.test.ts @@ -2,13 +2,10 @@ * @vitest-environment jsdom */ +import '../utils/use-fake-timers'; import type { MockedFunction } from 'vitest'; import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; -import { useFakeTimers } from '../utils/use-fake-timers'; - -useFakeTimers(); - import * as SentryBrowserUtils from '@sentry-internal/browser-utils'; import * as SentryUtils from '@sentry/core'; @@ -48,6 +45,7 @@ describe('Integration | flush', () => { let mockAddPerformanceEntries: MockAddPerformanceEntries; beforeAll(async () => { + vi.useFakeTimers(); vi.spyOn(SentryBrowserUtils, 'addClickKeypressInstrumentationHandler').mockImplementation(handler => { domHandler = handler; }); diff --git a/packages/replay-internal/test/integration/getReplayId.test.ts b/packages/replay-internal/test/integration/getReplayId.test.ts index 17315cbf0826..08cff16ad85e 100644 --- a/packages/replay-internal/test/integration/getReplayId.test.ts +++ b/packages/replay-internal/test/integration/getReplayId.test.ts @@ -2,14 +2,15 @@ * @vitest-environment jsdom */ -import { afterEach, describe, expect, it, vi } from 'vitest'; - +import '../utils/use-fake-timers'; +import { afterEach, beforeAll, describe, expect, it, vi } from 'vitest'; import { mockSdk } from '../mocks/mockSdk'; -import { useFakeTimers } from '../utils/use-fake-timers'; - -useFakeTimers(); describe('Integration | getReplayId', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); + afterEach(() => { vi.clearAllMocks(); }); diff --git a/packages/replay-internal/test/integration/rateLimiting.test.ts b/packages/replay-internal/test/integration/rateLimiting.test.ts index 711781e3d2ee..ada599ff2b34 100644 --- a/packages/replay-internal/test/integration/rateLimiting.test.ts +++ b/packages/replay-internal/test/integration/rateLimiting.test.ts @@ -2,19 +2,15 @@ * @vitest-environment jsdom */ -import type { MockedFunction } from 'vitest'; -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; - -import { getClient } from '@sentry/core'; +import '../utils/use-fake-timers'; import type { Transport, TransportMakeRequestResponse } from '@sentry/core'; - +import { getClient } from '@sentry/core'; +import type { MockedFunction } from 'vitest'; +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { DEFAULT_FLUSH_MIN_DELAY } from '../../src/constants'; import type { ReplayContainer } from '../../src/replay'; import { clearSession } from '../../src/session/clearSession'; import { BASE_TIMESTAMP, mockSdk } from '../index'; -import { useFakeTimers } from '../utils/use-fake-timers'; - -useFakeTimers(); async function advanceTimers(time: number) { vi.advanceTimersByTime(time); @@ -27,6 +23,10 @@ describe('Integration | rate-limiting behaviour', () => { let replay: ReplayContainer; let mockTransportSend: MockTransportSend; + beforeAll(() => { + vi.useFakeTimers(); + }); + beforeEach(async () => { vi.setSystemTime(new Date(BASE_TIMESTAMP)); diff --git a/packages/replay-internal/test/integration/recordingMode.test.ts b/packages/replay-internal/test/integration/recordingMode.test.ts index 400a9ffd47b1..34bed33784a3 100644 --- a/packages/replay-internal/test/integration/recordingMode.test.ts +++ b/packages/replay-internal/test/integration/recordingMode.test.ts @@ -2,13 +2,15 @@ * @vitest-environment jsdom */ -import { describe, expect, test } from 'vitest'; +import '../utils/use-fake-timers'; +import { beforeAll, describe, expect, test, vi } from 'vitest'; import { resetSdkMock } from '../mocks/resetSdkMock'; -import { useFakeTimers } from '../utils/use-fake-timers'; - -useFakeTimers(); describe('Integration | getRecordingMode()', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); + test('returns "session" when session sampling is enabled', async () => { const { integration } = await resetSdkMock({ replayOptions: { diff --git a/packages/replay-internal/test/integration/rrweb.test.ts b/packages/replay-internal/test/integration/rrweb.test.ts index 0e6ada8b0d2a..42b8f23fd5fb 100644 --- a/packages/replay-internal/test/integration/rrweb.test.ts +++ b/packages/replay-internal/test/integration/rrweb.test.ts @@ -2,14 +2,15 @@ * @vitest-environment jsdom */ -import { afterEach, describe, expect, it, vi } from 'vitest'; - +import '../utils/use-fake-timers'; +import { afterEach, beforeAll, describe, expect, it, vi } from 'vitest'; import { resetSdkMock } from '../mocks/resetSdkMock'; -import { useFakeTimers } from '../utils/use-fake-timers'; - -useFakeTimers(); describe('Integration | rrweb', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); + afterEach(() => { vi.clearAllMocks(); }); diff --git a/packages/replay-internal/test/integration/sampling.test.ts b/packages/replay-internal/test/integration/sampling.test.ts index a9b756c064c2..3ba7aad58568 100644 --- a/packages/replay-internal/test/integration/sampling.test.ts +++ b/packages/replay-internal/test/integration/sampling.test.ts @@ -2,15 +2,16 @@ * @vitest-environment jsdom */ -import { beforeEach, describe, expect, it, vi } from 'vitest'; - +import '../utils/use-fake-timers'; import { getClient } from '@sentry/core'; +import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { resetSdkMock } from '../mocks/resetSdkMock'; -import { useFakeTimers } from '../utils/use-fake-timers'; - -useFakeTimers(); describe('Integration | sampling', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); + beforeEach(() => { vi.clearAllMocks(); }); diff --git a/packages/replay-internal/test/integration/sendReplayEvent.test.ts b/packages/replay-internal/test/integration/sendReplayEvent.test.ts index 993e6623f5c9..84f8667531ac 100644 --- a/packages/replay-internal/test/integration/sendReplayEvent.test.ts +++ b/packages/replay-internal/test/integration/sendReplayEvent.test.ts @@ -2,13 +2,13 @@ * @vitest-environment jsdom */ +import '../utils/use-fake-timers'; + import type { MockInstance, MockedFunction } from 'vitest'; import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; - import * as SentryBrowserUtils from '@sentry-internal/browser-utils'; import * as SentryCore from '@sentry/core'; import type { Transport } from '@sentry/core'; - import { DEFAULT_FLUSH_MIN_DELAY, WINDOW } from '../../src/constants'; import type { ReplayContainer } from '../../src/replay'; import { clearSession } from '../../src/session/clearSession'; @@ -17,9 +17,6 @@ import * as SendReplayRequest from '../../src/util/sendReplayRequest'; import { BASE_TIMESTAMP, mockRrweb, mockSdk } from '../index'; import type { DomHandler } from '../types'; import { getTestEventCheckout, getTestEventIncremental } from '../utils/getTestEvent'; -import { useFakeTimers } from '../utils/use-fake-timers'; - -useFakeTimers(); type MockTransportSend = MockedFunction; @@ -32,6 +29,7 @@ describe('Integration | sendReplayEvent', () => { const { record: mockRecord } = mockRrweb(); beforeAll(async () => { + vi.useFakeTimers(); vi.setSystemTime(new Date(BASE_TIMESTAMP)); vi.spyOn(SentryBrowserUtils, 'addClickKeypressInstrumentationHandler').mockImplementation(handler => { domHandler = handler; diff --git a/packages/replay-internal/test/integration/session.test.ts b/packages/replay-internal/test/integration/session.test.ts index 78ecee16027e..89938eaf4b8e 100644 --- a/packages/replay-internal/test/integration/session.test.ts +++ b/packages/replay-internal/test/integration/session.test.ts @@ -2,11 +2,10 @@ * @vitest-environment jsdom */ -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; - -import { getClient } from '@sentry/core'; +import '../utils/use-fake-timers'; import type { Transport } from '@sentry/core'; - +import { getClient } from '@sentry/core'; +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { DEFAULT_FLUSH_MIN_DELAY, MAX_REPLAY_DURATION, @@ -26,9 +25,6 @@ import type { RecordMock } from '../mocks/mockRrweb'; import { resetSdkMock } from '../mocks/resetSdkMock'; import type { DomHandler } from '../types'; import { getTestEventCheckout, getTestEventIncremental } from '../utils/getTestEvent'; -import { useFakeTimers } from '../utils/use-fake-timers'; - -useFakeTimers(); const prevLocation = WINDOW.location; @@ -37,6 +33,10 @@ describe('Integration | session', () => { let domHandler: DomHandler; let mockRecord: RecordMock; + beforeAll(() => { + vi.useFakeTimers(); + }); + beforeEach(async () => { ({ mockRecord, domHandler, replay } = await resetSdkMock({ replayOptions: { diff --git a/packages/replay-internal/test/integration/start.test.ts b/packages/replay-internal/test/integration/start.test.ts index 8b2136d16120..7381aa5121b3 100644 --- a/packages/replay-internal/test/integration/start.test.ts +++ b/packages/replay-internal/test/integration/start.test.ts @@ -2,24 +2,24 @@ * @vitest-environment jsdom */ -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; - -import { getClient } from '@sentry/core'; +import '../utils/use-fake-timers'; import type { Transport } from '@sentry/core'; - +import { getClient } from '@sentry/core'; +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { DEFAULT_FLUSH_MIN_DELAY, SESSION_IDLE_EXPIRE_DURATION } from '../../src/constants'; import type { Replay } from '../../src/integration'; import type { ReplayContainer } from '../../src/replay'; import { BASE_TIMESTAMP } from '../index'; import { resetSdkMock } from '../mocks/resetSdkMock'; -import { useFakeTimers } from '../utils/use-fake-timers'; - -useFakeTimers(); describe('Integration | start', () => { let replay: ReplayContainer; let integration: Replay; + beforeAll(() => { + vi.useFakeTimers(); + }); + beforeEach(async () => { ({ replay, integration } = await resetSdkMock({ replayOptions: { diff --git a/packages/replay-internal/test/integration/stop.test.ts b/packages/replay-internal/test/integration/stop.test.ts index 5c3aa49b77d8..0c07ff56da19 100644 --- a/packages/replay-internal/test/integration/stop.test.ts +++ b/packages/replay-internal/test/integration/stop.test.ts @@ -2,11 +2,10 @@ * @vitest-environment jsdom */ -import type { MockInstance, MockedFunction } from 'vitest'; -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; - +import '../utils/use-fake-timers'; import * as SentryBrowserUtils from '@sentry-internal/browser-utils'; - +import type { MockedFunction, MockInstance } from 'vitest'; +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { WINDOW } from '../../src/constants'; import type { Replay } from '../../src/integration'; import type { ReplayContainer } from '../../src/replay'; @@ -15,9 +14,6 @@ import { createOptionsEvent } from '../../src/util/handleRecordingEmit'; // mock functions need to be imported first import { BASE_TIMESTAMP, mockRrweb, mockSdk } from '../index'; import { getTestEventIncremental } from '../utils/getTestEvent'; -import { useFakeTimers } from '../utils/use-fake-timers'; - -useFakeTimers(); type MockRunFlush = MockedFunction; @@ -31,6 +27,10 @@ describe('Integration | stop', () => { let mockAddDomInstrumentationHandler: MockInstance; let mockRunFlush: MockRunFlush; + beforeAll(() => { + vi.useFakeTimers(); + }); + beforeEach(async () => { vi.setSystemTime(new Date(BASE_TIMESTAMP)); mockAddDomInstrumentationHandler = vi.spyOn(SentryBrowserUtils, 'addClickKeypressInstrumentationHandler'); diff --git a/packages/replay-internal/test/unit/coreHandlers/handleClick.test.ts b/packages/replay-internal/test/unit/coreHandlers/handleClick.test.ts index 58d10db23e40..3f1d855e9936 100644 --- a/packages/replay-internal/test/unit/coreHandlers/handleClick.test.ts +++ b/packages/replay-internal/test/unit/coreHandlers/handleClick.test.ts @@ -2,19 +2,19 @@ * @vitest-environment jsdom */ -import { beforeEach, describe, expect, it, test, vi } from 'vitest'; - -import { useFakeTimers } from '../../utils/use-fake-timers'; - -useFakeTimers(); - +import '../../utils/use-fake-timers'; import type { Breadcrumb } from '@sentry/core'; - -import { BASE_TIMESTAMP } from '../..'; +import { beforeAll, beforeEach, describe, expect, it, test, vi } from 'vitest'; import { ClickDetector, ignoreElement } from '../../../src/coreHandlers/handleClick'; import type { ReplayContainer } from '../../../src/types'; +import { BASE_TIMESTAMP } from '../..'; + describe('Unit | coreHandlers | handleClick', () => { describe('ClickDetector', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); + beforeEach(() => { vi.setSystemTime(BASE_TIMESTAMP); }); diff --git a/packages/replay-internal/test/unit/coreHandlers/handleNetworkBreadcrumbs.test.ts b/packages/replay-internal/test/unit/coreHandlers/handleNetworkBreadcrumbs.test.ts index 512c2b0f33eb..680d51880e0a 100644 --- a/packages/replay-internal/test/unit/coreHandlers/handleNetworkBreadcrumbs.test.ts +++ b/packages/replay-internal/test/unit/coreHandlers/handleNetworkBreadcrumbs.test.ts @@ -2,9 +2,7 @@ * @vitest-environment jsdom */ -import { beforeEach, describe, expect, it, vi } from 'vitest'; - -import { SENTRY_XHR_DATA_KEY } from '@sentry-internal/browser-utils'; +import '../../utils/use-fake-timers'; import type { Breadcrumb, BreadcrumbHint, @@ -12,16 +10,14 @@ import type { SentryWrappedXMLHttpRequest, XhrBreadcrumbHint, } from '@sentry/core'; - -import { BASE_TIMESTAMP } from '../..'; +import { SENTRY_XHR_DATA_KEY } from '@sentry-internal/browser-utils'; +import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { NETWORK_BODY_MAX_SIZE } from '../../../src/constants'; import { beforeAddNetworkBreadcrumb } from '../../../src/coreHandlers/handleNetworkBreadcrumbs'; import type { EventBufferArray } from '../../../src/eventBuffer/EventBufferArray'; import type { ReplayContainer, ReplayNetworkOptions } from '../../../src/types'; import { setupReplayContainer } from '../../utils/setupReplayContainer'; -import { useFakeTimers } from '../../utils/use-fake-timers'; - -useFakeTimers(); +import { BASE_TIMESTAMP } from '../..'; async function waitForReplayEventBuffer() { // Need one Promise.resolve() per await in the util functions @@ -57,6 +53,10 @@ function getMockResponse(contentLength?: string, body?: string, headers?: Record } describe('Unit | coreHandlers | handleNetworkBreadcrumbs', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); + describe('beforeAddNetworkBreadcrumb()', () => { let options: ReplayNetworkOptions & { replay: ReplayContainer; diff --git a/packages/replay-internal/test/unit/coreHandlers/util/addBreadcrumbEvent.test.ts b/packages/replay-internal/test/unit/coreHandlers/util/addBreadcrumbEvent.test.ts index eff636a70da6..13402292f34a 100644 --- a/packages/replay-internal/test/unit/coreHandlers/util/addBreadcrumbEvent.test.ts +++ b/packages/replay-internal/test/unit/coreHandlers/util/addBreadcrumbEvent.test.ts @@ -2,17 +2,18 @@ * @vitest-environment jsdom */ -import { beforeEach, describe, expect, it, vi } from 'vitest'; - -import { BASE_TIMESTAMP } from '../../..'; +import '../../../utils/use-fake-timers'; +import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { addBreadcrumbEvent } from '../../../../src/coreHandlers/util/addBreadcrumbEvent'; import type { EventBufferArray } from '../../../../src/eventBuffer/EventBufferArray'; import { setupReplayContainer } from '../../../utils/setupReplayContainer'; -import { useFakeTimers } from '../../../utils/use-fake-timers'; - -useFakeTimers(); +import { BASE_TIMESTAMP } from '../../..'; describe('Unit | coreHandlers | util | addBreadcrumbEvent', function () { + beforeAll(() => { + vi.useFakeTimers(); + }); + beforeEach(function () { vi.setSystemTime(BASE_TIMESTAMP); }); diff --git a/packages/replay-internal/test/unit/coreHandlers/util/fetchUtils.test.ts b/packages/replay-internal/test/unit/coreHandlers/util/fetchUtils.test.ts index 4da9ecab639e..7ccbae3e56ad 100644 --- a/packages/replay-internal/test/unit/coreHandlers/util/fetchUtils.test.ts +++ b/packages/replay-internal/test/unit/coreHandlers/util/fetchUtils.test.ts @@ -1,12 +1,12 @@ -import { describe, expect, it, vi } from 'vitest'; - -import { useFakeTimers } from '../../../utils/use-fake-timers'; - -useFakeTimers(); - +import '../../../utils/use-fake-timers'; +import { beforeAll, describe, expect, it, vi } from 'vitest'; import { _getResponseInfo } from '../../../../src/coreHandlers/util/fetchUtils'; describe('Unit | coreHandlers | util | fetchUtils', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); + describe('_getResponseInfo', () => { it('works with captureDetails: false', async () => { const res = await _getResponseInfo( diff --git a/packages/replay-internal/test/unit/coreHandlers/util/networkUtils.test.ts b/packages/replay-internal/test/unit/coreHandlers/util/networkUtils.test.ts index f3ad45e10918..1a2f88ef71cd 100644 --- a/packages/replay-internal/test/unit/coreHandlers/util/networkUtils.test.ts +++ b/packages/replay-internal/test/unit/coreHandlers/util/networkUtils.test.ts @@ -2,8 +2,8 @@ * @vitest-environment jsdom */ -import { describe, expect, it } from 'vitest'; - +import '../../../utils/use-fake-timers'; +import { beforeAll, describe, expect, it, vi } from 'vitest'; import { NETWORK_BODY_MAX_SIZE } from '../../../../src/constants'; import { buildNetworkRequestOrResponse, @@ -11,11 +11,12 @@ import { getFullUrl, parseContentLengthHeader, } from '../../../../src/coreHandlers/util/networkUtils'; -import { useFakeTimers } from '../../../utils/use-fake-timers'; - -useFakeTimers(); describe('Unit | coreHandlers | util | networkUtils', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); + describe('parseContentLengthHeader()', () => { it.each([ [undefined, undefined], diff --git a/packages/replay-internal/test/unit/util/addEvent.test.ts b/packages/replay-internal/test/unit/util/addEvent.test.ts index 91bd29532cc5..c65f6fc61d5e 100644 --- a/packages/replay-internal/test/unit/util/addEvent.test.ts +++ b/packages/replay-internal/test/unit/util/addEvent.test.ts @@ -3,20 +3,20 @@ */ import 'jsdom-worker'; - -import { beforeEach, describe, expect, it, vi } from 'vitest'; - -import { BASE_TIMESTAMP } from '../..'; +import '../../utils/use-fake-timers'; +import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { MAX_REPLAY_DURATION, REPLAY_MAX_EVENT_BUFFER_SIZE, SESSION_IDLE_PAUSE_DURATION } from '../../../src/constants'; import type { EventBufferProxy } from '../../../src/eventBuffer/EventBufferProxy'; import { addEvent, shouldAddEvent } from '../../../src/util/addEvent'; import { getTestEventIncremental } from '../../utils/getTestEvent'; import { setupReplayContainer } from '../../utils/setupReplayContainer'; -import { useFakeTimers } from '../../utils/use-fake-timers'; - -useFakeTimers(); +import { BASE_TIMESTAMP } from '../..'; describe('Unit | util | addEvent', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); + it('stops when encountering a compression error', async function () { vi.setSystemTime(BASE_TIMESTAMP); diff --git a/packages/replay-internal/test/unit/util/createPerformanceEntry.test.ts b/packages/replay-internal/test/unit/util/createPerformanceEntry.test.ts index 8660d365d3e5..3ba3bcf4e8ee 100644 --- a/packages/replay-internal/test/unit/util/createPerformanceEntry.test.ts +++ b/packages/replay-internal/test/unit/util/createPerformanceEntry.test.ts @@ -1,15 +1,5 @@ -import { afterAll, beforeEach, describe, expect, it, vi } from 'vitest'; - -import { useFakeTimers } from '../../utils/use-fake-timers'; - -useFakeTimers(); -vi.setSystemTime(new Date('2023-01-01')); - -vi.mock('@sentry/core', async () => ({ - ...(await vi.importActual('@sentry/core')), - browserPerformanceTimeOrigin: () => new Date('2023-01-01').getTime(), -})); - +import '../../utils/use-fake-timers'; +import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { WINDOW } from '../../../src/constants'; import { createPerformanceEntries, @@ -20,7 +10,17 @@ import { } from '../../../src/util/createPerformanceEntries'; import { PerformanceEntryNavigation } from '../../fixtures/performanceEntry/navigation'; +vi.mock('@sentry/core', async () => ({ + ...(await vi.importActual('@sentry/core')), + browserPerformanceTimeOrigin: () => new Date('2023-01-01').getTime(), +})); + describe('Unit | util | createPerformanceEntries', () => { + beforeAll(() => { + vi.useFakeTimers(); + vi.setSystemTime(new Date('2023-01-01')); + }); + beforeEach(function () { if (!WINDOW.performance.getEntriesByType) { WINDOW.performance.getEntriesByType = vi.fn((type: string) => { diff --git a/packages/replay-internal/test/unit/util/debounce.test.ts b/packages/replay-internal/test/unit/util/debounce.test.ts index 56d97621a030..e6c422d4a002 100644 --- a/packages/replay-internal/test/unit/util/debounce.test.ts +++ b/packages/replay-internal/test/unit/util/debounce.test.ts @@ -1,12 +1,12 @@ -import { describe, expect, it, vi } from 'vitest'; - -import { useFakeTimers } from '../../utils/use-fake-timers'; - -useFakeTimers(); - +import '../../utils/use-fake-timers'; +import { beforeAll, describe, expect, it, vi } from 'vitest'; import { debounce } from '../../../src/util/debounce'; describe('Unit | util | debounce', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); + it('delay the execution of the passed callback function by the passed minDelay', () => { const callback = vi.fn(); const debouncedCallback = debounce(callback, 100); diff --git a/packages/replay-internal/test/unit/util/handleRecordingEmit.test.ts b/packages/replay-internal/test/unit/util/handleRecordingEmit.test.ts index 592e1647cc31..f83269de7042 100644 --- a/packages/replay-internal/test/unit/util/handleRecordingEmit.test.ts +++ b/packages/replay-internal/test/unit/util/handleRecordingEmit.test.ts @@ -2,24 +2,23 @@ * @vitest-environment jsdom */ -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; - -import type { MockInstance } from 'vitest'; - +import '../../utils/use-fake-timers'; import { EventType } from '@sentry-internal/rrweb'; - -import { BASE_TIMESTAMP } from '../..'; +import type { MockInstance } from 'vitest'; +import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import type { ReplayOptionFrameEvent } from '../../../src/types'; import * as SentryAddEvent from '../../../src/util/addEvent'; import { createOptionsEvent, getHandleRecordingEmit } from '../../../src/util/handleRecordingEmit'; import { setupReplayContainer } from '../../utils/setupReplayContainer'; -import { useFakeTimers } from '../../utils/use-fake-timers'; - -useFakeTimers(); +import { BASE_TIMESTAMP } from '../..'; let optionsEvent: ReplayOptionFrameEvent; describe('Unit | util | handleRecordingEmit', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); + let addEventMock: MockInstance; beforeEach(function () { diff --git a/packages/replay-internal/test/unit/util/throttle.test.ts b/packages/replay-internal/test/unit/util/throttle.test.ts index eeead6b24941..34dab8ab9504 100644 --- a/packages/replay-internal/test/unit/util/throttle.test.ts +++ b/packages/replay-internal/test/unit/util/throttle.test.ts @@ -1,12 +1,13 @@ -import { describe, expect, it, vi } from 'vitest'; - +import '../../utils/use-fake-timers'; +import { beforeAll, describe, expect, it, vi } from 'vitest'; +import { SKIPPED, throttle, THROTTLED } from '../../../src/util/throttle'; import { BASE_TIMESTAMP } from '../..'; -import { SKIPPED, THROTTLED, throttle } from '../../../src/util/throttle'; -import { useFakeTimers } from '../../utils/use-fake-timers'; - -useFakeTimers(); describe('Unit | util | throttle', () => { + beforeAll(() => { + vi.useFakeTimers(); + }); + it('executes when not hitting the limit', () => { const now = BASE_TIMESTAMP; vi.setSystemTime(now); diff --git a/packages/replay-internal/test/utils/use-fake-timers.ts b/packages/replay-internal/test/utils/use-fake-timers.ts index 71f31659b064..a5137ca6aa37 100644 --- a/packages/replay-internal/test/utils/use-fake-timers.ts +++ b/packages/replay-internal/test/utils/use-fake-timers.ts @@ -6,7 +6,3 @@ vi.mock('@sentry-internal/browser-utils', async () => ({ return setTimeout.call(global, ...args); }, })); - -export function useFakeTimers(): void { - vi.useFakeTimers(); -} From 59fffdd928ed4ce6300aec090eed3af885fb12af Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Fri, 25 Apr 2025 11:51:12 +0200 Subject: [PATCH 2/3] rename import --- .../replay-internal/test/integration/autoSaveSession.test.ts | 2 +- .../test/integration/beforeAddRecordingEvent.test.ts | 2 +- .../test/integration/coreHandlers/handleAfterSendEvent.test.ts | 2 +- .../test/integration/coreHandlers/handleBeforeSendEvent.test.ts | 2 +- .../test/integration/coreHandlers/handleGlobalEvent.test.ts | 2 +- packages/replay-internal/test/integration/earlyEvents.test.ts | 2 +- .../replay-internal/test/integration/errorSampleRate.test.ts | 2 +- packages/replay-internal/test/integration/eventBuffer.test.ts | 2 +- .../replay-internal/test/integration/eventProcessors.test.ts | 2 +- packages/replay-internal/test/integration/events.test.ts | 2 +- packages/replay-internal/test/integration/flush.test.ts | 2 +- packages/replay-internal/test/integration/getReplayId.test.ts | 2 +- packages/replay-internal/test/integration/rateLimiting.test.ts | 2 +- packages/replay-internal/test/integration/recordingMode.test.ts | 2 +- packages/replay-internal/test/integration/rrweb.test.ts | 2 +- packages/replay-internal/test/integration/sampling.test.ts | 2 +- .../replay-internal/test/integration/sendReplayEvent.test.ts | 2 +- packages/replay-internal/test/integration/session.test.ts | 2 +- packages/replay-internal/test/integration/start.test.ts | 2 +- packages/replay-internal/test/integration/stop.test.ts | 2 +- .../replay-internal/test/unit/coreHandlers/handleClick.test.ts | 2 +- .../test/unit/coreHandlers/handleNetworkBreadcrumbs.test.ts | 2 +- .../test/unit/coreHandlers/util/addBreadcrumbEvent.test.ts | 2 +- .../test/unit/coreHandlers/util/fetchUtils.test.ts | 2 +- .../test/unit/coreHandlers/util/networkUtils.test.ts | 2 +- packages/replay-internal/test/unit/util/addEvent.test.ts | 2 +- .../test/unit/util/createPerformanceEntry.test.ts | 2 +- packages/replay-internal/test/unit/util/debounce.test.ts | 2 +- .../replay-internal/test/unit/util/handleRecordingEmit.test.ts | 2 +- packages/replay-internal/test/unit/util/throttle.test.ts | 2 +- .../utils/{use-fake-timers.ts => mock-internal-setTimeout.ts} | 0 31 files changed, 30 insertions(+), 30 deletions(-) rename packages/replay-internal/test/utils/{use-fake-timers.ts => mock-internal-setTimeout.ts} (100%) diff --git a/packages/replay-internal/test/integration/autoSaveSession.test.ts b/packages/replay-internal/test/integration/autoSaveSession.test.ts index cf8210b94047..dde8d05653a5 100644 --- a/packages/replay-internal/test/integration/autoSaveSession.test.ts +++ b/packages/replay-internal/test/integration/autoSaveSession.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../utils/use-fake-timers'; +import '../utils/mock-internal-setTimeout'; import { EventType } from '@sentry-internal/rrweb'; import { afterEach, beforeAll, describe, expect, test, vi } from 'vitest'; import { saveSession } from '../../src/session/saveSession'; diff --git a/packages/replay-internal/test/integration/beforeAddRecordingEvent.test.ts b/packages/replay-internal/test/integration/beforeAddRecordingEvent.test.ts index c6daff84246d..b753d38c3fd6 100644 --- a/packages/replay-internal/test/integration/beforeAddRecordingEvent.test.ts +++ b/packages/replay-internal/test/integration/beforeAddRecordingEvent.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../utils/use-fake-timers'; +import '../utils/mock-internal-setTimeout'; import type { MockInstance, MockedFunction } from 'vitest'; import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; diff --git a/packages/replay-internal/test/integration/coreHandlers/handleAfterSendEvent.test.ts b/packages/replay-internal/test/integration/coreHandlers/handleAfterSendEvent.test.ts index 0647031bca69..f45441a34caf 100644 --- a/packages/replay-internal/test/integration/coreHandlers/handleAfterSendEvent.test.ts +++ b/packages/replay-internal/test/integration/coreHandlers/handleAfterSendEvent.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../../utils/use-fake-timers'; +import '../../utils/mock-internal-setTimeout'; import type { ErrorEvent, Event } from '@sentry/core'; import { getClient } from '@sentry/core'; import type { MockInstance } from 'vitest'; diff --git a/packages/replay-internal/test/integration/coreHandlers/handleBeforeSendEvent.test.ts b/packages/replay-internal/test/integration/coreHandlers/handleBeforeSendEvent.test.ts index 5b59adaad221..6f5a42e304f6 100644 --- a/packages/replay-internal/test/integration/coreHandlers/handleBeforeSendEvent.test.ts +++ b/packages/replay-internal/test/integration/coreHandlers/handleBeforeSendEvent.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../../utils/use-fake-timers'; +import '../../utils/mock-internal-setTimeout'; import { afterEach, beforeAll, describe, expect, it, vi } from 'vitest'; import { handleBeforeSendEvent } from '../../../src/coreHandlers/handleBeforeSendEvent'; import type { ReplayContainer } from '../../../src/replay'; diff --git a/packages/replay-internal/test/integration/coreHandlers/handleGlobalEvent.test.ts b/packages/replay-internal/test/integration/coreHandlers/handleGlobalEvent.test.ts index 93a492b1a275..956b8a93e72b 100644 --- a/packages/replay-internal/test/integration/coreHandlers/handleGlobalEvent.test.ts +++ b/packages/replay-internal/test/integration/coreHandlers/handleGlobalEvent.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../../utils/use-fake-timers'; +import '../../utils/mock-internal-setTimeout'; import type { Event } from '@sentry/core'; import { getClient } from '@sentry/core'; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; diff --git a/packages/replay-internal/test/integration/earlyEvents.test.ts b/packages/replay-internal/test/integration/earlyEvents.test.ts index 8ac9bbb87b18..baa7d1c7b4b5 100644 --- a/packages/replay-internal/test/integration/earlyEvents.test.ts +++ b/packages/replay-internal/test/integration/earlyEvents.test.ts @@ -1,7 +1,7 @@ /** * @vitest-environment jsdom */ -import '../utils/use-fake-timers'; +import '../utils/mock-internal-setTimeout'; import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { BASE_TIMESTAMP } from '..'; import { resetSdkMock } from '../mocks/resetSdkMock'; diff --git a/packages/replay-internal/test/integration/errorSampleRate.test.ts b/packages/replay-internal/test/integration/errorSampleRate.test.ts index 6ccd8dc0cd2b..15edb6c3431f 100644 --- a/packages/replay-internal/test/integration/errorSampleRate.test.ts +++ b/packages/replay-internal/test/integration/errorSampleRate.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../utils/use-fake-timers'; +import '../utils/mock-internal-setTimeout'; import { captureException, getClient } from '@sentry/core'; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { diff --git a/packages/replay-internal/test/integration/eventBuffer.test.ts b/packages/replay-internal/test/integration/eventBuffer.test.ts index 0b9950c54e41..77b32da61b60 100644 --- a/packages/replay-internal/test/integration/eventBuffer.test.ts +++ b/packages/replay-internal/test/integration/eventBuffer.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../utils/use-fake-timers'; +import '../utils/mock-internal-setTimeout'; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { WINDOW } from '../../src/constants'; import type { Replay } from '../../src/integration'; diff --git a/packages/replay-internal/test/integration/eventProcessors.test.ts b/packages/replay-internal/test/integration/eventProcessors.test.ts index 615fffcb4d23..3c1e65a1be5f 100644 --- a/packages/replay-internal/test/integration/eventProcessors.test.ts +++ b/packages/replay-internal/test/integration/eventProcessors.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../utils/use-fake-timers'; +import '../utils/mock-internal-setTimeout'; import type { Event } from '@sentry/core'; import { getClient, getCurrentScope } from '@sentry/core'; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; diff --git a/packages/replay-internal/test/integration/events.test.ts b/packages/replay-internal/test/integration/events.test.ts index 765e9c104150..5d103ff66534 100644 --- a/packages/replay-internal/test/integration/events.test.ts +++ b/packages/replay-internal/test/integration/events.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../utils/use-fake-timers'; +import '../utils/mock-internal-setTimeout'; import { getClient } from '@sentry/core'; import type { MockInstance } from 'vitest'; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; diff --git a/packages/replay-internal/test/integration/flush.test.ts b/packages/replay-internal/test/integration/flush.test.ts index 9d05b20af90c..d918f6d50bc8 100644 --- a/packages/replay-internal/test/integration/flush.test.ts +++ b/packages/replay-internal/test/integration/flush.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../utils/use-fake-timers'; +import '../utils/mock-internal-setTimeout'; import type { MockedFunction } from 'vitest'; import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; diff --git a/packages/replay-internal/test/integration/getReplayId.test.ts b/packages/replay-internal/test/integration/getReplayId.test.ts index 08cff16ad85e..c2f4e765520a 100644 --- a/packages/replay-internal/test/integration/getReplayId.test.ts +++ b/packages/replay-internal/test/integration/getReplayId.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../utils/use-fake-timers'; +import '../utils/mock-internal-setTimeout'; import { afterEach, beforeAll, describe, expect, it, vi } from 'vitest'; import { mockSdk } from '../mocks/mockSdk'; diff --git a/packages/replay-internal/test/integration/rateLimiting.test.ts b/packages/replay-internal/test/integration/rateLimiting.test.ts index ada599ff2b34..688c9469fc40 100644 --- a/packages/replay-internal/test/integration/rateLimiting.test.ts +++ b/packages/replay-internal/test/integration/rateLimiting.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../utils/use-fake-timers'; +import '../utils/mock-internal-setTimeout'; import type { Transport, TransportMakeRequestResponse } from '@sentry/core'; import { getClient } from '@sentry/core'; import type { MockedFunction } from 'vitest'; diff --git a/packages/replay-internal/test/integration/recordingMode.test.ts b/packages/replay-internal/test/integration/recordingMode.test.ts index 34bed33784a3..9af89d221ea2 100644 --- a/packages/replay-internal/test/integration/recordingMode.test.ts +++ b/packages/replay-internal/test/integration/recordingMode.test.ts @@ -4,7 +4,7 @@ import '../utils/use-fake-timers'; import { beforeAll, describe, expect, test, vi } from 'vitest'; -import { resetSdkMock } from '../mocks/resetSdkMock'; +import { resetSdkMock } from '.../utils/mock-internal-setTimeout describe('Integration | getRecordingMode()', () => { beforeAll(() => { diff --git a/packages/replay-internal/test/integration/rrweb.test.ts b/packages/replay-internal/test/integration/rrweb.test.ts index 42b8f23fd5fb..7dafb3574a31 100644 --- a/packages/replay-internal/test/integration/rrweb.test.ts +++ b/packages/replay-internal/test/integration/rrweb.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../utils/use-fake-timers'; +import '../utils/mock-internal-setTimeout'; import { afterEach, beforeAll, describe, expect, it, vi } from 'vitest'; import { resetSdkMock } from '../mocks/resetSdkMock'; diff --git a/packages/replay-internal/test/integration/sampling.test.ts b/packages/replay-internal/test/integration/sampling.test.ts index 3ba7aad58568..9ffa00c349c6 100644 --- a/packages/replay-internal/test/integration/sampling.test.ts +++ b/packages/replay-internal/test/integration/sampling.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../utils/use-fake-timers'; +import '../utils/mock-internal-setTimeout'; import { getClient } from '@sentry/core'; import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { resetSdkMock } from '../mocks/resetSdkMock'; diff --git a/packages/replay-internal/test/integration/sendReplayEvent.test.ts b/packages/replay-internal/test/integration/sendReplayEvent.test.ts index 84f8667531ac..957e3cfbfd14 100644 --- a/packages/replay-internal/test/integration/sendReplayEvent.test.ts +++ b/packages/replay-internal/test/integration/sendReplayEvent.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../utils/use-fake-timers'; +import '../utils/mock-internal-setTimeout'; import type { MockInstance, MockedFunction } from 'vitest'; import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; diff --git a/packages/replay-internal/test/integration/session.test.ts b/packages/replay-internal/test/integration/session.test.ts index 89938eaf4b8e..5cf259755e47 100644 --- a/packages/replay-internal/test/integration/session.test.ts +++ b/packages/replay-internal/test/integration/session.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../utils/use-fake-timers'; +import '../utils/mock-internal-setTimeout'; import type { Transport } from '@sentry/core'; import { getClient } from '@sentry/core'; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; diff --git a/packages/replay-internal/test/integration/start.test.ts b/packages/replay-internal/test/integration/start.test.ts index 7381aa5121b3..3a98fa9196e8 100644 --- a/packages/replay-internal/test/integration/start.test.ts +++ b/packages/replay-internal/test/integration/start.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../utils/use-fake-timers'; +import '../utils/mock-internal-setTimeout'; import type { Transport } from '@sentry/core'; import { getClient } from '@sentry/core'; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; diff --git a/packages/replay-internal/test/integration/stop.test.ts b/packages/replay-internal/test/integration/stop.test.ts index 0c07ff56da19..591a0b0c1967 100644 --- a/packages/replay-internal/test/integration/stop.test.ts +++ b/packages/replay-internal/test/integration/stop.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../utils/use-fake-timers'; +import '../utils/mock-internal-setTimeout'; import * as SentryBrowserUtils from '@sentry-internal/browser-utils'; import type { MockedFunction, MockInstance } from 'vitest'; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; diff --git a/packages/replay-internal/test/unit/coreHandlers/handleClick.test.ts b/packages/replay-internal/test/unit/coreHandlers/handleClick.test.ts index 3f1d855e9936..2816c369423f 100644 --- a/packages/replay-internal/test/unit/coreHandlers/handleClick.test.ts +++ b/packages/replay-internal/test/unit/coreHandlers/handleClick.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../../utils/use-fake-timers'; +import '../../utils/mock-internal-setTimeout'; import type { Breadcrumb } from '@sentry/core'; import { beforeAll, beforeEach, describe, expect, it, test, vi } from 'vitest'; import { ClickDetector, ignoreElement } from '../../../src/coreHandlers/handleClick'; diff --git a/packages/replay-internal/test/unit/coreHandlers/handleNetworkBreadcrumbs.test.ts b/packages/replay-internal/test/unit/coreHandlers/handleNetworkBreadcrumbs.test.ts index 680d51880e0a..ca102b7af721 100644 --- a/packages/replay-internal/test/unit/coreHandlers/handleNetworkBreadcrumbs.test.ts +++ b/packages/replay-internal/test/unit/coreHandlers/handleNetworkBreadcrumbs.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../../utils/use-fake-timers'; +import '../../utils/mock-internal-setTimeout'; import type { Breadcrumb, BreadcrumbHint, diff --git a/packages/replay-internal/test/unit/coreHandlers/util/addBreadcrumbEvent.test.ts b/packages/replay-internal/test/unit/coreHandlers/util/addBreadcrumbEvent.test.ts index 13402292f34a..48ce5d20d0d7 100644 --- a/packages/replay-internal/test/unit/coreHandlers/util/addBreadcrumbEvent.test.ts +++ b/packages/replay-internal/test/unit/coreHandlers/util/addBreadcrumbEvent.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../../../utils/use-fake-timers'; +import '../../../utils/mock-internal-setTimeout'; import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { addBreadcrumbEvent } from '../../../../src/coreHandlers/util/addBreadcrumbEvent'; import type { EventBufferArray } from '../../../../src/eventBuffer/EventBufferArray'; diff --git a/packages/replay-internal/test/unit/coreHandlers/util/fetchUtils.test.ts b/packages/replay-internal/test/unit/coreHandlers/util/fetchUtils.test.ts index 7ccbae3e56ad..fe9c4676603f 100644 --- a/packages/replay-internal/test/unit/coreHandlers/util/fetchUtils.test.ts +++ b/packages/replay-internal/test/unit/coreHandlers/util/fetchUtils.test.ts @@ -1,4 +1,4 @@ -import '../../../utils/use-fake-timers'; +import '../../../utils/mock-internal-setTimeout'; import { beforeAll, describe, expect, it, vi } from 'vitest'; import { _getResponseInfo } from '../../../../src/coreHandlers/util/fetchUtils'; diff --git a/packages/replay-internal/test/unit/coreHandlers/util/networkUtils.test.ts b/packages/replay-internal/test/unit/coreHandlers/util/networkUtils.test.ts index 1a2f88ef71cd..7932002b92d8 100644 --- a/packages/replay-internal/test/unit/coreHandlers/util/networkUtils.test.ts +++ b/packages/replay-internal/test/unit/coreHandlers/util/networkUtils.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../../../utils/use-fake-timers'; +import '../../../utils/mock-internal-setTimeout'; import { beforeAll, describe, expect, it, vi } from 'vitest'; import { NETWORK_BODY_MAX_SIZE } from '../../../../src/constants'; import { diff --git a/packages/replay-internal/test/unit/util/addEvent.test.ts b/packages/replay-internal/test/unit/util/addEvent.test.ts index c65f6fc61d5e..bd2aa0d6a035 100644 --- a/packages/replay-internal/test/unit/util/addEvent.test.ts +++ b/packages/replay-internal/test/unit/util/addEvent.test.ts @@ -3,7 +3,7 @@ */ import 'jsdom-worker'; -import '../../utils/use-fake-timers'; +import '../../utils/mock-internal-setTimeout'; import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { MAX_REPLAY_DURATION, REPLAY_MAX_EVENT_BUFFER_SIZE, SESSION_IDLE_PAUSE_DURATION } from '../../../src/constants'; import type { EventBufferProxy } from '../../../src/eventBuffer/EventBufferProxy'; diff --git a/packages/replay-internal/test/unit/util/createPerformanceEntry.test.ts b/packages/replay-internal/test/unit/util/createPerformanceEntry.test.ts index 3ba3bcf4e8ee..a17c421c518b 100644 --- a/packages/replay-internal/test/unit/util/createPerformanceEntry.test.ts +++ b/packages/replay-internal/test/unit/util/createPerformanceEntry.test.ts @@ -1,4 +1,4 @@ -import '../../utils/use-fake-timers'; +import '../../utils/mock-internal-setTimeout'; import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { WINDOW } from '../../../src/constants'; import { diff --git a/packages/replay-internal/test/unit/util/debounce.test.ts b/packages/replay-internal/test/unit/util/debounce.test.ts index e6c422d4a002..452ccc1951fd 100644 --- a/packages/replay-internal/test/unit/util/debounce.test.ts +++ b/packages/replay-internal/test/unit/util/debounce.test.ts @@ -1,4 +1,4 @@ -import '../../utils/use-fake-timers'; +import '../../utils/mock-internal-setTimeout'; import { beforeAll, describe, expect, it, vi } from 'vitest'; import { debounce } from '../../../src/util/debounce'; diff --git a/packages/replay-internal/test/unit/util/handleRecordingEmit.test.ts b/packages/replay-internal/test/unit/util/handleRecordingEmit.test.ts index f83269de7042..53ade39f6fd9 100644 --- a/packages/replay-internal/test/unit/util/handleRecordingEmit.test.ts +++ b/packages/replay-internal/test/unit/util/handleRecordingEmit.test.ts @@ -2,7 +2,7 @@ * @vitest-environment jsdom */ -import '../../utils/use-fake-timers'; +import '../../utils/mock-internal-setTimeout'; import { EventType } from '@sentry-internal/rrweb'; import type { MockInstance } from 'vitest'; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; diff --git a/packages/replay-internal/test/unit/util/throttle.test.ts b/packages/replay-internal/test/unit/util/throttle.test.ts index 34dab8ab9504..3c7f59e9b831 100644 --- a/packages/replay-internal/test/unit/util/throttle.test.ts +++ b/packages/replay-internal/test/unit/util/throttle.test.ts @@ -1,4 +1,4 @@ -import '../../utils/use-fake-timers'; +import '../../utils/mock-internal-setTimeout'; import { beforeAll, describe, expect, it, vi } from 'vitest'; import { SKIPPED, throttle, THROTTLED } from '../../../src/util/throttle'; import { BASE_TIMESTAMP } from '../..'; diff --git a/packages/replay-internal/test/utils/use-fake-timers.ts b/packages/replay-internal/test/utils/mock-internal-setTimeout.ts similarity index 100% rename from packages/replay-internal/test/utils/use-fake-timers.ts rename to packages/replay-internal/test/utils/mock-internal-setTimeout.ts From 28941663dc95d52f7e02ffb1f705099d218bda6e Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Fri, 25 Apr 2025 12:55:38 +0200 Subject: [PATCH 3/3] fix it, oops --- .../replay-internal/test/integration/recordingMode.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/replay-internal/test/integration/recordingMode.test.ts b/packages/replay-internal/test/integration/recordingMode.test.ts index 9af89d221ea2..cf6b12046260 100644 --- a/packages/replay-internal/test/integration/recordingMode.test.ts +++ b/packages/replay-internal/test/integration/recordingMode.test.ts @@ -2,9 +2,9 @@ * @vitest-environment jsdom */ -import '../utils/use-fake-timers'; +import '../utils/mock-internal-setTimeout'; import { beforeAll, describe, expect, test, vi } from 'vitest'; -import { resetSdkMock } from '.../utils/mock-internal-setTimeout +import { resetSdkMock } from '../mocks/resetSdkMock'; describe('Integration | getRecordingMode()', () => { beforeAll(() => {