46 lines · 1.6 KB · TypeScript
RawDownload
import { describe, expect, it } from "@effect/vitest"; import {  emptyApiKeyValue,  emptyOAuthValue,  emptyValueForKind,  parseScopes,  type AuthTemplateEditorValue,} from "./auth-template-editor"; describe("parseScopes", () => {  it("splits a comma-separated string into trimmed, non-empty scopes", () => {    expect(parseScopes("read, write,  admin ")).toEqual(["read", "write", "admin"]);  });   it("drops empty segments (trailing comma, double comma)", () => {    expect(parseScopes("read,,write,")).toEqual(["read", "write"]);  });   it("returns an empty list for a blank string", () => {    expect(parseScopes("   ")).toEqual([]);    expect(parseScopes("")).toEqual([]);  });}); describe("emptyValueForKind (tab switching)", () => {  it("none → { kind: 'none' }", () => {    expect(emptyValueForKind("none")).toEqual({ kind: "none" });  });   it("apikey → one editable Authorization header placement", () => {    expect(emptyValueForKind("apikey")).toEqual(emptyApiKeyValue());    const value = emptyValueForKind("apikey");    if (value.kind !== "apikey") throw new Error("expected apikey");    expect(value.placements).toEqual([{ carrier: "header", name: "Authorization", prefix: "" }]);  });   it("oauth → empty endpoints + scopes", () => {    expect(emptyValueForKind("oauth")).toEqual(emptyOAuthValue());    const value: AuthTemplateEditorValue = emptyValueForKind("oauth");    if (value.kind !== "oauth") throw new Error("expected oauth");    expect(value.authorizationUrl).toBe("");    expect(value.tokenUrl).toBe("");    expect(value.scopes).toEqual([]);  });});