Merged via /review-pr -> /prepare-pr -> /merge-pr. Prepared head SHA: 7533b85156186863609fee9379cd9aedf74435af Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com> Co-authored-by: shakkernerd <165377636+shakkernerd@users.noreply.github.com> Reviewed-by: @shakkernerd
39 lines
1.7 KiB
TypeScript
39 lines
1.7 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
formatSessionArchiveTimestamp,
|
|
isPrimarySessionTranscriptFileName,
|
|
isSessionArchiveArtifactName,
|
|
parseSessionArchiveTimestamp,
|
|
} from "./artifacts.js";
|
|
|
|
describe("session artifact helpers", () => {
|
|
it("classifies archived artifact file names", () => {
|
|
expect(isSessionArchiveArtifactName("abc.jsonl.deleted.2026-01-01T00-00-00.000Z")).toBe(true);
|
|
expect(isSessionArchiveArtifactName("abc.jsonl.reset.2026-01-01T00-00-00.000Z")).toBe(true);
|
|
expect(isSessionArchiveArtifactName("abc.jsonl.bak.2026-01-01T00-00-00.000Z")).toBe(true);
|
|
expect(isSessionArchiveArtifactName("sessions.json.bak.1737420882")).toBe(true);
|
|
expect(isSessionArchiveArtifactName("keep.deleted.keep.jsonl")).toBe(false);
|
|
expect(isSessionArchiveArtifactName("abc.jsonl")).toBe(false);
|
|
});
|
|
|
|
it("classifies primary transcript files", () => {
|
|
expect(isPrimarySessionTranscriptFileName("abc.jsonl")).toBe(true);
|
|
expect(isPrimarySessionTranscriptFileName("keep.deleted.keep.jsonl")).toBe(true);
|
|
expect(isPrimarySessionTranscriptFileName("abc.jsonl.deleted.2026-01-01T00-00-00.000Z")).toBe(
|
|
false,
|
|
);
|
|
expect(isPrimarySessionTranscriptFileName("sessions.json")).toBe(false);
|
|
});
|
|
|
|
it("formats and parses archive timestamps", () => {
|
|
const now = Date.parse("2026-02-23T12:34:56.000Z");
|
|
const stamp = formatSessionArchiveTimestamp(now);
|
|
expect(stamp).toBe("2026-02-23T12-34-56.000Z");
|
|
|
|
const file = `abc.jsonl.deleted.${stamp}`;
|
|
expect(parseSessionArchiveTimestamp(file, "deleted")).toBe(now);
|
|
expect(parseSessionArchiveTimestamp(file, "reset")).toBeNull();
|
|
expect(parseSessionArchiveTimestamp("keep.deleted.keep.jsonl", "deleted")).toBeNull();
|
|
});
|
|
});
|