Files
xboct-flow/tests/integration/taskStatus.test.ts
T

52 lines
1.2 KiB
TypeScript

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);
});
});