// @vitest-environment jsdom import { afterEach, describe, expect, it, vi } from "vitest"; import { renderView } from "./view-test-utils"; import { InitialSyncView } from "./InitialSyncView"; describe("InitialSyncView", () => { let dispose: (() => void) | undefined; afterEach(() => { dispose?.(); dispose = undefined; }); it("explains that pairing succeeded while the vault is still arriving", () => { const view = renderView(() => ( {}} /> )); dispose = view.dispose; expect(view.container.textContent).toContain("PAIRING COMPLETE"); expect(view.container.textContent).toContain("Getting your vault ready"); expect(view.container.textContent).toContain("securely receiving your vault"); expect(view.container.textContent).not.toContain("Retry initial sync"); }); it("offers a retry when the first sync takes longer than expected", () => { const retry = vi.fn(); const view = renderView(() => ); dispose = view.dispose; const button = Array.from(view.container.querySelectorAll("button")).find( (candidate) => candidate.textContent?.includes("Retry initial sync"), ); expect(button).toBeTruthy(); button?.click(); expect(retry).toHaveBeenCalledOnce(); }); });