import { describe, expect, it } from "@effect/vitest";import { getUniqueSecretId, isSecretIdTaken, slugifyForSecretId } from "./secret-id";describe("secret id helpers", () => { it("slugifies display names into secret ids", () => { expect(slugifyForSecretId("GitHub PAT")).toBe("github-pat"); expect(slugifyForSecretId(" Client Secret ")).toBe("client-secret"); }); it("returns the base id when it is unused", () => { expect(getUniqueSecretId("GitHub PAT", ["openai-api-key"])).toBe("github-pat"); }); it("appends a numeric suffix when the base id already exists", () => { expect(getUniqueSecretId("GitHub PAT", ["github-pat"])).toBe("github-pat-2"); expect(getUniqueSecretId("GitHub PAT", ["github-pat", "github-pat-2"])).toBe("github-pat-3"); }); it("matches existing ids exactly after trimming", () => { expect(isSecretIdTaken("github-pat", [" github-pat "])).toBe(true); expect(isSecretIdTaken("github-pat", ["github-pat-2"])).toBe(false); }); it("allows an empty fallback for flows that should start blank", () => { expect(getUniqueSecretId("", [], "")).toBe(""); });});
import { describe, expect, it } from "@effect/vitest";
import { getUniqueSecretId, isSecretIdTaken, slugifyForSecretId } from "./secret-id";
describe("secret id helpers", () => {
it("slugifies display names into secret ids", () => {
expect(slugifyForSecretId("GitHub PAT")).toBe("github-pat");
expect(slugifyForSecretId(" Client Secret ")).toBe("client-secret");
});
it("returns the base id when it is unused", () => {
expect(getUniqueSecretId("GitHub PAT", ["openai-api-key"])).toBe("github-pat");
});
it("appends a numeric suffix when the base id already exists", () => {
expect(getUniqueSecretId("GitHub PAT", ["github-pat"])).toBe("github-pat-2");
expect(getUniqueSecretId("GitHub PAT", ["github-pat", "github-pat-2"])).toBe("github-pat-3");
});
it("matches existing ids exactly after trimming", () => {
expect(isSecretIdTaken("github-pat", [" github-pat "])).toBe(true);
expect(isSecretIdTaken("github-pat", ["github-pat-2"])).toBe(false);
});
it("allows an empty fallback for flows that should start blank", () => {
expect(getUniqueSecretId("", [], "")).toBe("");
});
});