51 lines · 1.7 KB · TypeScript
RawDownload
import type { ProjectReadFileResult } from "@t3tools/contracts";import { EnvironmentId } from "@t3tools/contracts";import { afterEach, describe, expect, it, vi } from "vite-plus/test"; import {  clearProjectFileQueryData,  confirmProjectFileQueryData,  getOptimisticProjectFileQueryData,  resolveProjectFileQueryData,  setProjectFileQueryData,} from "./projectFilesQueryState"; const environmentId = EnvironmentId.make("environment-project-files-query-test"); describe("project files queries", () => {  afterEach(() => {    clearProjectFileQueryData(environmentId, "/repo", "convex.json");    vi.unstubAllGlobals();  });   it("keeps the latest optimistic draft when an older write finishes", () => {    vi.stubGlobal("window", {});    const initial = {      relativePath: "convex.json",      contents: '{"nodeVersion":"20"}',      byteLength: 20,      truncated: false,    } satisfies ProjectReadFileResult;    setProjectFileQueryData(environmentId, "/repo", "convex.json", '{"nodeVersion":"220"}');    setProjectFileQueryData(environmentId, "/repo", "convex.json", '{"nodeVersion":"22"}');     expect(getOptimisticProjectFileQueryData(environmentId, "/repo", "convex.json")?.contents).toBe(      '{"nodeVersion":"22"}',    );     expect(      confirmProjectFileQueryData(environmentId, "/repo", "convex.json", '{"nodeVersion":"220"}'),    ).toBe(false);     expect(resolveProjectFileQueryData(environmentId, "/repo", "convex.json", initial)).toEqual({      relativePath: "convex.json",      contents: '{"nodeVersion":"22"}',      byteLength: 20,      truncated: false,    });     expect(      confirmProjectFileQueryData(environmentId, "/repo", "convex.json", '{"nodeVersion":"22"}'),    ).toBe(true);  });});