import { describe, it, expect } from "vitest";
import { mkdtempSync, mkdirSync, writeFileSync } from "node:fs";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { computeSnapshot } from "./snapshot.js";

describe("computeSnapshot", () => {
  it("returns sorted file paths + sha256 hashes", () => {
    const tmp = mkdtempSync(join(tmpdir(), "snapshot-"));
    mkdirSync(join(tmp, "src"));
    writeFileSync(join(tmp, "package.json"), `{ "name": "x" }\n`);
    writeFileSync(join(tmp, "src", "index.ts"), `export {};\n`);
    const snap = computeSnapshot(tmp);
    expect(snap).toEqual([
      { path: "package.json", sha256: expect.any(String) },
      { path: "src/index.ts", sha256: expect.any(String) },
    ]);
  });
});
