44 lines · 1.8 KB · TypeScript
RawDownload
import { describe, expect, it } from "vite-plus/test"; import { resolveWizardNavigation } from "./AddProviderInstanceDialog.logic"; describe("resolveWizardNavigation", () => {  const invalidId = { instanceIdError: "Instance ID is required." };  const validId = { instanceIdError: null };   it("allows moving from Driver to Identity before the instance id is valid", () => {    expect(resolveWizardNavigation(0, 1, 3, invalidId)).toEqual({ kind: "navigate", step: 1 });  });   it("blocks Next from Identity to Config while the instance id is invalid", () => {    expect(resolveWizardNavigation(1, 2, 3, invalidId)).toEqual({      kind: "blocked",      step: 1,      error: "Instance ID is required.",    });  });   it("stops a direct Driver-to-Config skip at Identity and surfaces its error", () => {    expect(resolveWizardNavigation(0, 2, 3, invalidId)).toEqual({      kind: "blocked",      step: 1,      error: "Instance ID is required.",    });  });   it("allows advancing and skipping forward once the instance id is valid", () => {    expect(resolveWizardNavigation(1, 2, 3, validId)).toEqual({ kind: "navigate", step: 2 });    expect(resolveWizardNavigation(0, 2, 3, validId)).toEqual({ kind: "navigate", step: 2 });  });   it("always preserves backward Driver and Identity navigation", () => {    expect(resolveWizardNavigation(2, 1, 3, invalidId)).toEqual({ kind: "navigate", step: 1 });    expect(resolveWizardNavigation(2, 0, 3, invalidId)).toEqual({ kind: "navigate", step: 0 });    expect(resolveWizardNavigation(1, 0, 3, invalidId)).toEqual({ kind: "navigate", step: 0 });  });   it("clamps requested steps to the wizard bounds", () => {    expect(resolveWizardNavigation(2, 8, 3, validId)).toEqual({ kind: "navigate", step: 2 });    expect(resolveWizardNavigation(0, -1, 3, invalidId)).toEqual({ kind: "navigate", step: 0 });  });});