import { beforeEach, describe, expect, it } from "vitest"; import { err, ok } from "neverthrow"; import { InMemoryFileSystem } from "../../tests/helpers/InMemoryFileSystem"; import { AppError } from "@/error"; import { FsTaskRepository } from "@/storage/FsTaskRepository"; import { deleteTask } from "./deleteTask"; describe("deleteTask", () => { const folder = "/tasks"; let repo: FsTaskRepository; beforeEach(() => { repo = new FsTaskRepository(new InMemoryFileSystem(), ".task.md"); }); it("deletes an existing task", async () => { const created = await repo.create(folder, { title: "To delete", description: "", status: "todo", priority: "medium", tags: [], assignee: "", }); const result = await deleteTask(repo, { folderPath: folder, id: created.id, }); expect(result).toEqual(ok(undefined)); expect(await repo.list(folder)).toEqual([]); }); it("returns not_found for unknown id", async () => { const result = await deleteTask(repo, { folderPath: folder, id: "missing", }); expect(result).toEqual(err(AppError.notFound())); }); it("rejects missing folder", async () => { const result = await deleteTask(repo, { folderPath: undefined, id: "x", }); expect(result).toEqual(err(AppError.noFolder())); }); it("rejects missing id", async () => { const result = await deleteTask(repo, { folderPath: folder, id: undefined, }); expect(result).toEqual(err(AppError.noId())); }); });