import { describe, it, expect, beforeEach } from "vitest"; import { useCaptureStore } from "@/stores/capture-store"; describe("useCaptureStore", () => { beforeEach(() => { useCaptureStore.setState({ isOpen: false, isSubmitting: false, lastCapturedId: null, error: null, }); }); it("starts closed", () => { const state = useCaptureStore.getState(); expect(state.isOpen).toBe(false); expect(state.isSubmitting).toBe(false); }); it("opens the overlay", () => { useCaptureStore.getState().open(); expect(useCaptureStore.getState().isOpen).toBe(true); }); it("closes the overlay and resets state", () => { useCaptureStore.setState({ isOpen: true, isSubmitting: true, error: "test" }); useCaptureStore.getState().close(); const state = useCaptureStore.getState(); expect(state.isOpen).toBe(false); expect(state.isSubmitting).toBe(false); expect(state.error).toBeNull(); }); it("sets submitting state", () => { useCaptureStore.getState().setSubmitting(true); expect(useCaptureStore.getState().isSubmitting).toBe(true); }); it("records a successful capture", () => { useCaptureStore.getState().captureSuccess("bd-123"); const state = useCaptureStore.getState(); expect(state.lastCapturedId).toBe("bd-123"); expect(state.isSubmitting).toBe(false); expect(state.isOpen).toBe(false); expect(state.error).toBeNull(); }); it("records a failed capture", () => { useCaptureStore.setState({ isSubmitting: true }); useCaptureStore.getState().captureError("br command failed"); const state = useCaptureStore.getState(); expect(state.error).toBe("br command failed"); expect(state.isSubmitting).toBe(false); expect(state.isOpen).toBe(true); // stays open so user can retry }); it("clears error when opening", () => { useCaptureStore.setState({ error: "old error" }); useCaptureStore.getState().open(); expect(useCaptureStore.getState().error).toBeNull(); }); });