test: create\read\parse file full cycle

This commit is contained in:
2026-07-18 08:01:27 +05:00
parent 71e454600e
commit 2ef7c2b55e
+20
View File
@@ -5,6 +5,7 @@ import { TaskPriority } from "@/model/taskPriority";
import { TaskStatus } from "@/model/taskStatus"; import { TaskStatus } from "@/model/taskStatus";
import { beforeEach, describe, expect, it } from "vitest"; import { beforeEach, describe, expect, it } from "vitest";
import { InMemoryFileSystem } from "../../tests/helpers/InMemoryFileSystem"; import { InMemoryFileSystem } from "../../tests/helpers/InMemoryFileSystem";
import { parseTaskFile } from "@/utils/markdown";
import { FsTaskRepository } from "./FsTaskRepository"; import { FsTaskRepository } from "./FsTaskRepository";
const UUID_RE = const UUID_RE =
@@ -245,4 +246,23 @@ describe("FsTaskRepository", () => {
const files = await fs.readdir(folder); const files = await fs.readdir(folder);
expect(files).toEqual([`fix-bug${TASK_FILE_EXTENSION}`]); expect(files).toEqual([`fix-bug${TASK_FILE_EXTENSION}`]);
}); });
it("integration: create → file → parse results in matching task", async () => {
const task = await repo.create(folder, sampleTask);
const content = await fs.readFile(
`${folder}/fix-login-bug${TASK_FILE_EXTENSION}`,
);
const parsed = parseTaskFile(content);
expect(parsed.id).toBe(task.id);
expect(parsed.title).toBe(sampleTask.title);
expect(parsed.description).toBe(sampleTask.description);
expect(parsed.status).toBe(sampleTask.status);
expect(parsed.priority).toBe(sampleTask.priority);
expect(parsed.tags).toEqual(sampleTask.tags);
expect(parsed.assignee).toBe(sampleTask.assignee);
expect(parsed.created).toBe(task.created);
expect(parsed.updated).toBe(task.updated);
});
}); });