mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2026-07-23 21:12:59 +00:00
35 lines
1.3 KiB
TypeScript
35 lines
1.3 KiB
TypeScript
import { VER } from "@vrtmrz/livesync-commonlib/compat/common/types";
|
|
import { describe, expect, it, vi } from "vitest";
|
|
|
|
const { evalObsidianJson } = vi.hoisted(() => ({
|
|
evalObsidianJson: vi.fn(),
|
|
}));
|
|
|
|
vi.mock("./cli.ts", () => ({ evalObsidianJson }));
|
|
|
|
import { assertE2eCompatibilityMarker, type CompatibilityMarkerState } from "./liveSyncWorkflow.ts";
|
|
|
|
describe("compatibility marker persistence", () => {
|
|
it("waits for an accepted review to reach device-local storage", async () => {
|
|
const pending: CompatibilityMarkerState = {
|
|
vaultName: "fixture",
|
|
additionalSuffix: "-",
|
|
expectedStorageKey: "fixture--database-compatibility-version",
|
|
rawStorageValue: null,
|
|
serviceValue: "",
|
|
versionUpFlash: "",
|
|
};
|
|
const persisted: CompatibilityMarkerState = {
|
|
...pending,
|
|
rawStorageValue: `${VER}`,
|
|
serviceValue: `${VER}`,
|
|
};
|
|
evalObsidianJson.mockResolvedValueOnce(pending).mockResolvedValueOnce(persisted);
|
|
|
|
await expect(
|
|
assertE2eCompatibilityMarker("obsidian-cli", {}, { timeoutMs: 100, intervalMs: 0 })
|
|
).resolves.toEqual(persisted);
|
|
expect(evalObsidianJson).toHaveBeenCalledTimes(2);
|
|
});
|
|
});
|