47 lines · 1.5 KB · TypeScript
RawDownload
import fs from "node:fs";import os from "node:os";import path from "node:path"; import { describe, expect, it } from "vitest"; import { RendererStateStore } from "./rendererStateStore"; function makeTempDir(prefix: string): string {  return fs.mkdtempSync(path.join(os.tmpdir(), prefix));} describe("RendererStateStore", () => {  it("returns null when no renderer state has been saved", async () => {    const stateDir = makeTempDir("t3code-renderer-state-empty-");    const store = new RendererStateStore(stateDir);     await expect(store.get()).resolves.toBeNull();     await store.close();    fs.rmSync(stateDir, { recursive: true, force: true });  });   it("persists and reloads renderer state from sqlite", async () => {    const stateDir = makeTempDir("t3code-renderer-state-roundtrip-");    const firstStore = new RendererStateStore(stateDir);    const payload =      '{"version":8,"projects":[],"threads":[],"activeThreadId":null,"runtimeMode":"full-access"}';     await firstStore.set({ stateJson: payload });    const firstRead = await firstStore.get();    expect(firstRead).toMatchObject({      stateJson: payload,      updatedAt: expect.any(String),    });    await firstStore.close();     const secondStore = new RendererStateStore(stateDir);    const secondRead = await secondStore.get();    expect(secondRead).toMatchObject({      stateJson: payload,      updatedAt: expect.any(String),    });    await secondStore.close();    fs.rmSync(stateDir, { recursive: true, force: true });  });});