import { describe, expect, it } from "vitest"; import { applyAgentSkillSnapshot } from "./agent-skills-state"; describe("applyAgentSkillSnapshot", () => { it("hydrates the initial snapshot without arming autosave", () => { const result = applyAgentSkillSnapshot( { draft: [], lastSaved: [], hasHydratedSnapshot: false, }, ["paperclip", "para-memory-files"], ); expect(result).toEqual({ draft: ["paperclip", "para-memory-files"], lastSaved: ["paperclip", "para-memory-files"], hasHydratedSnapshot: true, shouldSkipAutosave: true, }); }); it("keeps unsaved local edits when a fresh snapshot arrives", () => { const result = applyAgentSkillSnapshot( { draft: ["paperclip", "custom-skill"], lastSaved: ["paperclip"], hasHydratedSnapshot: true, }, ["paperclip"], ); expect(result).toEqual({ draft: ["paperclip", "custom-skill"], lastSaved: ["paperclip"], hasHydratedSnapshot: true, shouldSkipAutosave: false, }); }); it("adopts server state after a successful save and skips the follow-up autosave pass", () => { const result = applyAgentSkillSnapshot( { draft: ["paperclip", "custom-skill"], lastSaved: ["paperclip", "custom-skill"], hasHydratedSnapshot: true, }, ["paperclip", "custom-skill"], ); expect(result).toEqual({ draft: ["paperclip", "custom-skill"], lastSaved: ["paperclip", "custom-skill"], hasHydratedSnapshot: true, shouldSkipAutosave: true, }); }); });