import { resetJourney } from '../core/runtime'; import { resetSharedPolicies, setJourneyDefaultEnabled } from '../global'; import { sendToConsole } from '../sinks/console'; import { sendToDatadog } from '../sinks/datadog'; /** Package default sinks installed by `config.ts` bootstrap. */ const DEFAULT_SINKS = [sendToDatadog, sendToConsole] as const; /** Standard journey def used across engine suites. */ export const baseJourneyDef = { name: 'journey-under-test', team: 'platform', group: 'test', service: 'journey', timeoutMs: 0, } as const; /** Last emitted journey payload from a sink mock. */ export function lastJourney(emitMock: jest.Mock) { return emitMock.mock.calls[emitMock.mock.calls.length - 1][0].journey; } /** * Wire `emitMock` as the only sink and restore package defaults after each test. * Call once at the top of a `describe` block. */ export function useJourneyTestRuntime(emitMock: jest.Mock) { beforeEach(() => { setJourneyDefaultEnabled(true); resetSharedPolicies(); resetJourney({ sinks: [emitMock], slowRequests: { defaultMs: 4_000, endpoints: [] }, }); emitMock.mockClear(); }); afterEach(() => { setJourneyDefaultEnabled(false); localStorage.clear(); sessionStorage.clear(); resetSharedPolicies(); resetJourney({ sinks: [...DEFAULT_SINKS], slowRequests: { defaultMs: 4_000, endpoints: [] }, }); }); }