Files
promptfoo--promptfoo/test/providers/openai/responses/setup.ts
T
wehub-resource-sync 0d3cb498a3
CI / Shell Format Check (push) Has been cancelled
CI / Check Ruby (3.4) (push) Has been cancelled
CI / CI Config (push) Has been cancelled
CI / Test on Node ${{ matrix.node }} and ${{ matrix.os }}${{ matrix.shard && format(' (shard {0}/3)', matrix.shard) || '' }} (push) Has been cancelled
CI / Build on Node ${{ matrix.node }} (push) Has been cancelled
CI / Style Check (push) Has been cancelled
CI / Generate Assets (push) Has been cancelled
CI / Check Python (3.14) (push) Has been cancelled
CI / Check Python (3.9) (push) Has been cancelled
CI / Build Docs (push) Has been cancelled
CI / Code Scan Action (push) Has been cancelled
CI / Site tests (push) Has been cancelled
CI / webui tests (push) Has been cancelled
CI / Run Integration Tests (push) Has been cancelled
CI / Run Smoke Tests (push) Has been cancelled
CI / Go Tests (push) Has been cancelled
CI / Share Test (push) Has been cancelled
CI / Redteam (Production API) (push) Has been cancelled
CI / Redteam (Staging API) (push) Has been cancelled
CI / GitHub Actions Lint (push) Has been cancelled
CI / Check Ruby (3.0) (push) Has been cancelled
release-please / release-please (push) Has been cancelled
release-please / build (push) Has been cancelled
release-please / publish-npm (push) Has been cancelled
release-please / publish-npm-backfill (push) Has been cancelled
release-please / docker (push) Has been cancelled
release-please / publish-code-scan-action (push) Has been cancelled
release-please / attest-code-scan-action (push) Has been cancelled
Deploy local.promptfoo.app / Deploy to Cloudflare Pages (push) Has been cancelled
Test and Publish Multi-arch Docker Image / test (push) Has been cancelled
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-amd64 platform:linux/amd64 runner:ubuntu-latest]) (push) Has been cancelled
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-arm64 platform:linux/arm64 runner:ubuntu-24.04-arm]) (push) Has been cancelled
Test and Publish Multi-arch Docker Image / merge-docker-digests (push) Has been cancelled
Test and Publish Multi-arch Docker Image / Attest Multi-arch Image (push) Has been cancelled
Validate Renovate Config / Validate Renovate Configuration (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:24:08 +08:00

76 lines
2.1 KiB
TypeScript

// Shared harness for the split OpenAI responses provider tests.
//
// Each split test file must import this module with a bare side-effect
// import (`import './setup';`) BEFORE importing the modules under test, so
// the `vi.mock` calls below register against the worker's module registry
// before `src/cache` / `src/logger` / `src/python/pythonUtils` load.
//
// The top-level `beforeEach` / `afterEach` hooks register into the importing
// file's test context because `vitest.config.ts` sets `isolate: true`, which
// re-evaluates this module for every test file. If that flag is ever
// disabled, the hooks would register only once per worker (in the first
// file that imports this module) and env/mocks would silently leak across
// files — update this harness before flipping it.
import { afterEach, beforeEach, vi } from 'vitest';
import { mockProcessEnv } from '../../../util/utils';
vi.mock('../../../../src/cache', async (importOriginal) => {
return {
...(await importOriginal()),
fetchWithCache: vi.fn(),
};
});
vi.mock('../../../../src/logger', () => ({
__esModule: true,
default: {
debug: vi.fn(),
info: vi.fn(),
warn: vi.fn(),
error: vi.fn(),
},
}));
vi.mock('../../../../src/python/pythonUtils', async (importOriginal) => {
return {
...(await importOriginal()),
runPython: vi.fn(),
};
});
const ENV_KEYS_TO_CLEAR = [
'OPENAI_TEMPERATURE',
'OPENAI_MAX_TOKENS',
'OPENAI_MAX_COMPLETION_TOKENS',
'OPENAI_API_BASE_URL',
'OPENAI_BASE_URL',
'OPENAI_API_HOST',
] as const;
type OpenAiEnvKey = (typeof ENV_KEYS_TO_CLEAR)[number];
let restoreOpenAiEnv = () => {};
function resetOpenAiEnv(overrides: Partial<Record<OpenAiEnvKey, string | undefined>> = {}) {
restoreOpenAiEnv();
restoreOpenAiEnv = mockProcessEnv({
...Object.fromEntries(ENV_KEYS_TO_CLEAR.map((key) => [key, undefined])),
...overrides,
});
}
export function setOpenAiEnv(overrides: Partial<Record<OpenAiEnvKey, string | undefined>>) {
resetOpenAiEnv(overrides);
}
beforeEach(() => {
vi.clearAllMocks();
resetOpenAiEnv();
});
afterEach(() => {
vi.resetAllMocks();
restoreOpenAiEnv();
restoreOpenAiEnv = () => {};
});