Spaces:
Running
Running
File size: 2,799 Bytes
704e84f a2c232b 704e84f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | 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;
}
}
|