diff options
Diffstat (limited to 'packages/opencode/test/preload.ts')
| -rw-r--r-- | packages/opencode/test/preload.ts | 91 |
1 files changed, 43 insertions, 48 deletions
diff --git a/packages/opencode/test/preload.ts b/packages/opencode/test/preload.ts index e94ed8bf1..dee704570 100644 --- a/packages/opencode/test/preload.ts +++ b/packages/opencode/test/preload.ts @@ -1,70 +1,65 @@ // IMPORTANT: Set env vars BEFORE any imports from src/ directory // xdg-basedir reads env vars at import time, so we must set these first -import os from "os"; -import path from "path"; -import fs from "fs/promises"; -import fsSync from "fs"; -import { afterAll } from "bun:test"; +import os from "os" +import path from "path" +import fs from "fs/promises" +import fsSync from "fs" +import { afterAll } from "bun:test" // Set XDG env vars FIRST, before any src/ imports -const dir = path.join(os.tmpdir(), "opencode-test-data-" + process.pid); -await fs.mkdir(dir, { recursive: true }); +const dir = path.join(os.tmpdir(), "opencode-test-data-" + process.pid) +await fs.mkdir(dir, { recursive: true }) afterAll(() => { - fsSync.rmSync(dir, { recursive: true, force: true }); -}); + fsSync.rmSync(dir, { recursive: true, force: true }) +}) -process.env["XDG_DATA_HOME"] = path.join(dir, "share"); -process.env["XDG_CACHE_HOME"] = path.join(dir, "cache"); -process.env["XDG_CONFIG_HOME"] = path.join(dir, "config"); -process.env["XDG_STATE_HOME"] = path.join(dir, "state"); -process.env["OPENCODE_MODELS_PATH"] = path.join( - import.meta.dir, - "tool", - "fixtures", - "models-api.json", -); +process.env["XDG_DATA_HOME"] = path.join(dir, "share") +process.env["XDG_CACHE_HOME"] = path.join(dir, "cache") +process.env["XDG_CONFIG_HOME"] = path.join(dir, "config") +process.env["XDG_STATE_HOME"] = path.join(dir, "state") +process.env["OPENCODE_MODELS_PATH"] = path.join(import.meta.dir, "tool", "fixtures", "models-api.json") // Set test home directory to isolate tests from user's actual home directory // This prevents tests from picking up real user configs/skills from ~/.claude/skills -const testHome = path.join(dir, "home"); -await fs.mkdir(testHome, { recursive: true }); -process.env["OPENCODE_TEST_HOME"] = testHome; +const testHome = path.join(dir, "home") +await fs.mkdir(testHome, { recursive: true }) +process.env["OPENCODE_TEST_HOME"] = testHome // Set test managed config directory to isolate tests from system managed settings -const testManagedConfigDir = path.join(dir, "managed"); -process.env["OPENCODE_TEST_MANAGED_CONFIG_DIR"] = testManagedConfigDir; +const testManagedConfigDir = path.join(dir, "managed") +process.env["OPENCODE_TEST_MANAGED_CONFIG_DIR"] = testManagedConfigDir // Write the cache version file to prevent global/index.ts from clearing the cache -const cacheDir = path.join(dir, "cache", "opencode"); -await fs.mkdir(cacheDir, { recursive: true }); -await fs.writeFile(path.join(cacheDir, "version"), "14"); +const cacheDir = path.join(dir, "cache", "opencode") +await fs.mkdir(cacheDir, { recursive: true }) +await fs.writeFile(path.join(cacheDir, "version"), "14") // Clear provider env vars to ensure clean test state -delete process.env["ANTHROPIC_API_KEY"]; -delete process.env["OPENAI_API_KEY"]; -delete process.env["GOOGLE_API_KEY"]; -delete process.env["GOOGLE_GENERATIVE_AI_API_KEY"]; -delete process.env["AZURE_OPENAI_API_KEY"]; -delete process.env["AWS_ACCESS_KEY_ID"]; -delete process.env["AWS_PROFILE"]; -delete process.env["AWS_REGION"]; -delete process.env["AWS_BEARER_TOKEN_BEDROCK"]; -delete process.env["OPENROUTER_API_KEY"]; -delete process.env["GROQ_API_KEY"]; -delete process.env["MISTRAL_API_KEY"]; -delete process.env["PERPLEXITY_API_KEY"]; -delete process.env["TOGETHER_API_KEY"]; -delete process.env["XAI_API_KEY"]; -delete process.env["DEEPSEEK_API_KEY"]; -delete process.env["FIREWORKS_API_KEY"]; -delete process.env["CEREBRAS_API_KEY"]; -delete process.env["SAMBANOVA_API_KEY"]; +delete process.env["ANTHROPIC_API_KEY"] +delete process.env["OPENAI_API_KEY"] +delete process.env["GOOGLE_API_KEY"] +delete process.env["GOOGLE_GENERATIVE_AI_API_KEY"] +delete process.env["AZURE_OPENAI_API_KEY"] +delete process.env["AWS_ACCESS_KEY_ID"] +delete process.env["AWS_PROFILE"] +delete process.env["AWS_REGION"] +delete process.env["AWS_BEARER_TOKEN_BEDROCK"] +delete process.env["OPENROUTER_API_KEY"] +delete process.env["GROQ_API_KEY"] +delete process.env["MISTRAL_API_KEY"] +delete process.env["PERPLEXITY_API_KEY"] +delete process.env["TOGETHER_API_KEY"] +delete process.env["XAI_API_KEY"] +delete process.env["DEEPSEEK_API_KEY"] +delete process.env["FIREWORKS_API_KEY"] +delete process.env["CEREBRAS_API_KEY"] +delete process.env["SAMBANOVA_API_KEY"] // Now safe to import from src/ -const { Log } = await import("../src/util/log"); +const { Log } = await import("../src/util/log") Log.init({ print: false, dev: true, level: "DEBUG", -}); +}) |
