test: add status flow test
This commit is contained in:
@@ -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);
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user