From c818ed551e36a7ad65a0eb73f3df0d12569f2958 Mon Sep 17 00:00:00 2001 From: Ku6epXBOCTuK Date: Sun, 19 Jul 2026 07:20:00 +0500 Subject: [PATCH] test: add status flow test --- tests/integration/taskStatus.test.ts | 51 ++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 tests/integration/taskStatus.test.ts diff --git a/tests/integration/taskStatus.test.ts b/tests/integration/taskStatus.test.ts new file mode 100644 index 0000000..ae2933d --- /dev/null +++ b/tests/integration/taskStatus.test.ts @@ -0,0 +1,51 @@ +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); + }); +});