40 lines · 1.5 KB · TypeScript
RawDownload
import { describe, expect, it } from "@effect/vitest"; import { MICROSOFT_GRAPH_DEFAULT_PRESET_IDS, MICROSOFT_GRAPH_OPENAPI_URL } from "./presets";import {  MICROSOFT_GRAPH_DEFAULT_SLICE_ASSET,  microsoftGraphPresetIdsForSliceAsset,  microsoftGraphSliceAssetFromUrl,  microsoftGraphSliceUrl,} from "./slices"; describe("microsoftGraphSliceAssetFromUrl", () => {  it("round-trips slice URLs and ignores fragments", () => {    expect(microsoftGraphSliceAssetFromUrl(microsoftGraphSliceUrl("mail"))).toBe("mail");    expect(      microsoftGraphSliceAssetFromUrl(`${microsoftGraphSliceUrl("default")}#preset=mail,calendar`),    ).toBe(MICROSOFT_GRAPH_DEFAULT_SLICE_ASSET);  });   it("rejects non-slice URLs", () => {    expect(microsoftGraphSliceAssetFromUrl(MICROSOFT_GRAPH_OPENAPI_URL)).toBeNull();    expect(microsoftGraphSliceAssetFromUrl("https://example.com/mail.yaml")).toBeNull();    expect(microsoftGraphSliceAssetFromUrl("not a url")).toBeNull();  });}); describe("microsoftGraphPresetIdsForSliceAsset", () => {  it("maps a preset asset to its single preset", () => {    expect(microsoftGraphPresetIdsForSliceAsset("mail")).toEqual(["mail"]);  });   it("maps the default asset to the default bundle", () => {    expect(microsoftGraphPresetIdsForSliceAsset(MICROSOFT_GRAPH_DEFAULT_SLICE_ASSET)).toEqual(      MICROSOFT_GRAPH_DEFAULT_PRESET_IDS,    );  });   it("returns null for unknown assets", () => {    expect(microsoftGraphPresetIdsForSliceAsset("not-a-preset")).toBeNull();  });});