import { afterEach, describe, expect, it } from "vitest"; import { findEnvKeys, getEnvApiKey } from "../src/env-api-keys.js"; const originalCopilotGitHubToken = process.env.COPILOT_GITHUB_TOKEN; const originalGhToken = process.env.GH_TOKEN; const originalGitHubToken = process.env.GITHUB_TOKEN; afterEach(() => { if (originalCopilotGitHubToken === undefined) { delete process.env.COPILOT_GITHUB_TOKEN; } else { process.env.COPILOT_GITHUB_TOKEN = originalCopilotGitHubToken; } if (originalGhToken === undefined) { delete process.env.GH_TOKEN; } else { process.env.GH_TOKEN = originalGhToken; } if (originalGitHubToken === undefined) { delete process.env.GITHUB_TOKEN; } else { process.env.GITHUB_TOKEN = originalGitHubToken; } }); describe("environment API keys", () => { it("does not treat generic GitHub tokens as GitHub Copilot credentials", () => { delete process.env.COPILOT_GITHUB_TOKEN; process.env.GH_TOKEN = "gh-token"; process.env.GITHUB_TOKEN = "github-token"; expect(findEnvKeys("github-copilot")).toBeUndefined(); expect(getEnvApiKey("github-copilot")).toBeUndefined(); }); it("resolves GitHub Copilot credentials from COPILOT_GITHUB_TOKEN", () => { process.env.COPILOT_GITHUB_TOKEN = "copilot-token"; process.env.GH_TOKEN = "gh-token"; process.env.GITHUB_TOKEN = "github-token"; expect(findEnvKeys("github-copilot")).toEqual(["COPILOT_GITHUB_TOKEN"]); expect(getEnvApiKey("github-copilot")).toBe("copilot-token"); }); });