mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-07-23 13:02:58 +00:00
37 lines
1.3 KiB
TypeScript
37 lines
1.3 KiB
TypeScript
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
|
|
const { evalObsidianJson } = vi.hoisted(() => ({
|
|
evalObsidianJson: vi.fn(),
|
|
}));
|
|
|
|
vi.mock("./cli.ts", () => ({ evalObsidianJson }));
|
|
|
|
import { prepareStableRemote } from "./upgradeWorkflow.ts";
|
|
|
|
describe("stable remote preparation", () => {
|
|
afterEach(() => {
|
|
vi.unstubAllEnvs();
|
|
vi.clearAllMocks();
|
|
});
|
|
|
|
it("waits for a readable Security Seed before marking the remote as resolved", async () => {
|
|
vi.stubEnv("E2E_OBSIDIAN_REMOTE_READY_INTERVAL_MS", "0");
|
|
vi.stubEnv("E2E_OBSIDIAN_REMOTE_READY_TIMEOUT_MS", "100");
|
|
evalObsidianJson
|
|
.mockResolvedValueOnce({ ok: true })
|
|
.mockResolvedValueOnce(false)
|
|
.mockResolvedValueOnce(true)
|
|
.mockResolvedValueOnce({ ok: true });
|
|
|
|
await prepareStableRemote("obsidian-cli", {});
|
|
|
|
expect(evalObsidianJson).toHaveBeenCalledTimes(4);
|
|
const scripts = evalObsidianJson.mock.calls.map(([, script]) => String(script));
|
|
expect(scripts[0]).toContain("tryCreateRemoteDatabase");
|
|
expect(scripts[0]).not.toContain("markRemoteResolved");
|
|
expect(scripts[1]).toContain("ensurePBKDF2Salt");
|
|
expect(scripts[2]).toContain("ensurePBKDF2Salt");
|
|
expect(scripts[3]).toContain("markRemoteResolved");
|
|
});
|
|
});
|