Spaces:
Running
Running
| import { clearAppLogEntriesForTest } from '@/lib/app-logger'; | |
| import { afterEach, beforeEach } from 'node:test'; | |
| export function registerRouteTestLifecycle() { | |
| let originalEnv: NodeJS.ProcessEnv; | |
| const originalConsoleError = console.error; | |
| beforeEach(() => { | |
| originalEnv = { ...process.env }; | |
| console.error = () => {}; | |
| for (const key of Object.keys(process.env)) { | |
| if (/^OPENAI_CHANNEL_\d+_/.test(key)) { | |
| delete process.env[key]; | |
| } | |
| } | |
| delete process.env.APP_PASSWORD; | |
| delete process.env.OPENAI_API_KEY; | |
| delete process.env.OPENAI_API_BASE_URL; | |
| delete process.env.OPENAI_UPSTREAM_PROXY_URL; | |
| delete process.env.OPENAI_CHANNEL_1_ID; | |
| delete process.env.OPENAI_CHANNEL_1_API_KEYS; | |
| delete process.env.OPENAI_CHANNEL_1_BASE_URL; | |
| delete process.env.OPENAI_CHANNEL_1_UPSTREAM_PROFILE; | |
| delete process.env.OPENAI_CHANNEL_1_REQUEST_MODES; | |
| delete process.env.OPENAI_CHANNEL_1_REQUEST_MODE_PRIORITY; | |
| delete process.env.OPENAI_CHANNEL_1_MATSCA_APP_ID; | |
| delete process.env.OPENAI_CHANNEL_1_MATSCA_APP_SECRET; | |
| delete process.env.OPENAI_CHANNEL_RECOVERY_PROBE_ENABLED; | |
| delete process.env.OPENAI_CHANNEL_RECOVERY_PROBE_INTERVAL_MS; | |
| delete process.env.OPENAI_CHANNEL_RECOVERY_PROBE_TIMEOUT_MS; | |
| delete process.env.OPENAI_CHANNEL_RECOVERY_PROBE_MAX_PER_TICK; | |
| delete process.env.OPENAI_CHANNEL_REQUIRE_PROBE_FOR_RECOVERY; | |
| delete process.env.OPENAI_CHANNEL_QUEUE_ENABLED; | |
| delete process.env.OPENAI_CHANNEL_QUEUE_MAX_WAIT_MS; | |
| delete process.env.OPENAI_CHANNEL_QUEUE_MAX_SIZE; | |
| delete process.env.OPENAI_MAX_STREAMS_PER_CREDENTIAL; | |
| delete process.env.OPENAI_ALLOWED_PLAIN_HTTP_API_BASE_URLS; | |
| delete process.env.ENABLE_RESPONSES_IMAGE_BACKEND; | |
| delete process.env.IMAGE_GENERATION_BACKEND; | |
| delete process.env.OPENAI_RESPONSES_API_MODEL; | |
| delete process.env.IMAGE_STREAMING_STRATEGY; | |
| process.env.APP_LOG_LEVEL = 'warn'; | |
| process.env.NEXT_PUBLIC_IMAGE_STORAGE_MODE = 'indexeddb'; | |
| clearAppLogEntriesForTest(); | |
| }); | |
| afterEach(async () => { | |
| const { resetServerChannelStateForTests } = await import('@/lib/server-channel-router'); | |
| resetServerChannelStateForTests(); | |
| clearAppLogEntriesForTest(); | |
| restoreProcessEnv(originalEnv); | |
| console.error = originalConsoleError; | |
| }); | |
| } | |
| function restoreProcessEnv(snapshot: NodeJS.ProcessEnv) { | |
| for (const key of Object.keys(process.env)) { | |
| if (!(key in snapshot)) { | |
| delete process.env[key]; | |
| } | |
| } | |
| for (const [key, value] of Object.entries(snapshot)) { | |
| process.env[key] = value; | |
| } | |
| } | |