53 lines · 2.1 KB · TypeScript
RawDownload
import { expect, test } from "bun:test"import { OpenScience } from "../src/openscience" test("subprocess env filtering never passes managed Atlas provider keys", () => {  const filtered = OpenScience.filterEnvForSubprocess({    PATH: "/usr/bin",    OPENROUTER_API_KEY: "thk_managed_openrouter",    OPENAI_API_KEY: "thk_managed_openai",    OPENROUTER_BASE_URL: "https://atlas.test/api/llm/proxy/openrouter/v1",  })   expect(filtered.PATH).toBe("/usr/bin")  expect(filtered.OPENROUTER_API_KEY).toBeUndefined()  expect(filtered.OPENAI_API_KEY).toBeUndefined()  expect(filtered.OPENROUTER_BASE_URL).toBe("https://atlas.test/api/llm/proxy/openrouter/v1")}) test("subprocess env filtering still passes BYOK OpenRouter keys", () => {  const filtered = OpenScience.filterEnvForSubprocess({    OPENROUTER_API_KEY: "sk-or-user-owned",  })   expect(filtered.OPENROUTER_API_KEY).toBe("sk-or-user-owned")}) test("mergeByokEnv injects a locally-connected OpenRouter key + pins public base url", () => {  const merged = OpenScience.mergeByokEnv(    { PATH: "/usr/bin", OPENROUTER_BASE_URL: "https://atlas.test/api/llm/proxy/openrouter/v1" },    { openrouter: { type: "api", key: "sk-or-user-owned" } },  )   expect(merged.OPENROUTER_API_KEY).toBe("sk-or-user-owned")  // A bridged BYOK key must hit public OpenRouter, not the managed proxy.  expect(merged.OPENROUTER_BASE_URL).toBe("https://openrouter.ai/api/v1")}) test("mergeByokEnv never injects a managed thk_ key", () => {  const merged = OpenScience.mergeByokEnv({}, { openrouter: { type: "api", key: "thk_managed" } })  expect(merged.OPENROUTER_API_KEY).toBeUndefined()}) test("mergeByokEnv does not override an existing value", () => {  const merged = OpenScience.mergeByokEnv(    { OPENROUTER_API_KEY: "sk-or-from-shell" },    { openrouter: { type: "api", key: "sk-or-from-auth" } },  )  expect(merged.OPENROUTER_API_KEY).toBe("sk-or-from-shell")}) test("mergeByokEnv ignores providers that are not subprocess-safe", () => {  const merged = OpenScience.mergeByokEnv({}, { anthropic: { type: "api", key: "sk-ant-user" } })  expect(merged.ANTHROPIC_API_KEY).toBeUndefined()})