52 lines
1.2 KiB
TypeScript
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);
|
|
});
|
|
});
|