50 lines · 2.0 KB · TypeScript
RawDownload
import { describe, expect, it } from "vitest";import { assertSyncEngineModeAllowed, resolveSyncEngineMode } from "./syncEngineMode"; describe("resolveSyncEngineMode", () => {  it("defaults to livestore when env var is missing", () => {    expect(resolveSyncEngineMode(undefined)).toBe("livestore");    expect(resolveSyncEngineMode("")).toBe("livestore");    expect(resolveSyncEngineMode("   ")).toBe("livestore");  });   it("accepts supported mode values case-insensitively", () => {    expect(resolveSyncEngineMode("legacy")).toBe("legacy");    expect(resolveSyncEngineMode("SHADOW")).toBe("shadow");    expect(resolveSyncEngineMode("livestore-read-pilot")).toBe("livestore-read-pilot");    expect(resolveSyncEngineMode("LIVESTORE")).toBe("livestore");  });   it("throws for unsupported values", () => {    expect(() => resolveSyncEngineMode("something-else")).toThrow(      /Invalid T3CODE_SYNC_ENGINE_MODE/i,    );  });}); describe("assertSyncEngineModeAllowed", () => {  it("allows any mode when enforcement is disabled", () => {    expect(() => assertSyncEngineModeAllowed("legacy")).not.toThrow();    expect(() => assertSyncEngineModeAllowed("shadow")).not.toThrow();    expect(() => assertSyncEngineModeAllowed("livestore-read-pilot")).not.toThrow();    expect(() => assertSyncEngineModeAllowed("livestore")).not.toThrow();  });   it("blocks legacy and shadow when enforceLiveStoreOnly is enabled", () => {    expect(() =>      assertSyncEngineModeAllowed("legacy", { enforceLiveStoreOnly: true }),    ).toThrow(/disabled/i);    expect(() =>      assertSyncEngineModeAllowed("shadow", { enforceLiveStoreOnly: true }),    ).toThrow(/disabled/i);  });   it("allows livestore modes when enforceLiveStoreOnly is enabled", () => {    expect(() =>      assertSyncEngineModeAllowed("livestore-read-pilot", { enforceLiveStoreOnly: true }),    ).not.toThrow();    expect(() =>      assertSyncEngineModeAllowed("livestore", { enforceLiveStoreOnly: true }),    ).not.toThrow();  });});