import { describe, expect, it } from "vitest"; import { TaskStatus } from "@/model/taskStatus"; import { InMemoryFileSystem } from "../helpers/InMemoryFileSystem"; import { parseTaskFile } from "@/utils/markdown"; const FS = new InMemoryFileSystem(); const FILE = "/tasks/test.xflow.md"; describe("task status integration", () => { it("parses valid status from file", async () => { await FS.writeFile( FILE, [ "---", 'id: "abc"', 'title: "Test"', "status: open", "---", "", "Body", ].join("\n"), ); const raw = await FS.readFile(FILE); const task = parseTaskFile(raw); expect(task.status).toBe(TaskStatus.OPEN); }); it("returns UNKNOWN after manually changing status to invalid value in file", async () => { await FS.writeFile( FILE, [ "---", 'id: "abc"', 'title: "Test"', "status: open", "---", "", "Body", ].join("\n"), ); const raw = await FS.readFile(FILE); const modified = raw.replace("status: open", "status: __not_a_status__"); await FS.writeFile(FILE, modified); const final = await FS.readFile(FILE); const task = parseTaskFile(final); expect(task.status).toBe(TaskStatus.UNKNOWN); }); });