Spaces:
Paused
Paused
| import fs from "node:fs/promises"; | |
| import path from "node:path"; | |
| import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; | |
| import { withTempHome } from "./test-helpers.js"; | |
| describe("talk api key fallback", () => { | |
| let previousEnv: string | undefined; | |
| beforeEach(() => { | |
| previousEnv = process.env.ELEVENLABS_API_KEY; | |
| delete process.env.ELEVENLABS_API_KEY; | |
| }); | |
| afterEach(() => { | |
| process.env.ELEVENLABS_API_KEY = previousEnv; | |
| }); | |
| it("injects talk.apiKey from profile when config is missing", async () => { | |
| await withTempHome(async (home) => { | |
| await fs.writeFile( | |
| path.join(home, ".profile"), | |
| "export ELEVENLABS_API_KEY=profile-key\n", | |
| "utf-8", | |
| ); | |
| vi.resetModules(); | |
| const { readConfigFileSnapshot } = await import("./config.js"); | |
| const snap = await readConfigFileSnapshot(); | |
| expect(snap.config?.talk?.apiKey).toBe("profile-key"); | |
| expect(snap.exists).toBe(false); | |
| }); | |
| }); | |
| it("prefers ELEVENLABS_API_KEY env over profile", async () => { | |
| await withTempHome(async (home) => { | |
| await fs.writeFile( | |
| path.join(home, ".profile"), | |
| "export ELEVENLABS_API_KEY=profile-key\n", | |
| "utf-8", | |
| ); | |
| process.env.ELEVENLABS_API_KEY = "env-key"; | |
| vi.resetModules(); | |
| const { readConfigFileSnapshot } = await import("./config.js"); | |
| const snap = await readConfigFileSnapshot(); | |
| expect(snap.config?.talk?.apiKey).toBe("env-key"); | |
| }); | |
| }); | |
| }); | |