feat: add unknown status and priority, change todo status to open
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
import { Task } from "@/model/task";
|
||||
import { TaskPriority } from "@/model/taskPriority";
|
||||
import { TaskStatus } from "@/model/taskStatus";
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { parseTaskFile, serializeTask } from "./markdown";
|
||||
|
||||
@@ -8,8 +10,8 @@ const fullTask: Task = {
|
||||
id: "550e8400-e29b-41d4-a716-446655440000",
|
||||
title: "Пофиксить баг логина",
|
||||
description: "Ошибка валидации токена",
|
||||
status: "in-progress",
|
||||
priority: "high",
|
||||
status: TaskStatus.IN_PROGRESS,
|
||||
priority: TaskPriority.HIGH,
|
||||
tags: ["bug", "frontend"],
|
||||
assignee: "ivanov",
|
||||
created: "2026-07-12T10:00:00.000Z",
|
||||
@@ -45,8 +47,8 @@ describe("markdown", () => {
|
||||
expect(task.id).toBe("abc");
|
||||
expect(task.title).toBe("Minimal");
|
||||
expect(task.description).toBe("");
|
||||
expect(task.status).toBe("todo");
|
||||
expect(task.priority).toBe("medium");
|
||||
expect(task.status).toBe(TaskStatus.UNKNOWN);
|
||||
expect(task.priority).toBe(TaskPriority.UNKNOWN);
|
||||
expect(task.tags).toEqual([]);
|
||||
expect(task.assignee).toBe("");
|
||||
expect(task.created).toMatch(ISO_RE);
|
||||
|
||||
+12
-4
@@ -10,6 +10,16 @@ function toISO(value: unknown): string {
|
||||
return new Date().toISOString();
|
||||
}
|
||||
|
||||
function normalizeTaskStatus(value: unknown): TaskStatus {
|
||||
if (isTaskStatus(value)) return value;
|
||||
return TaskStatus.UNKNOWN;
|
||||
}
|
||||
|
||||
function normalizeTaskPriority(value: unknown): TaskPriority {
|
||||
if (isTaskPriority(value)) return value;
|
||||
return TaskPriority.UNKNOWN;
|
||||
}
|
||||
|
||||
export function parseTaskFile(content: string): Task {
|
||||
const parsed = fm<Record<string, unknown>>(content);
|
||||
const data = parsed.attributes;
|
||||
@@ -17,10 +27,8 @@ export function parseTaskFile(content: string): Task {
|
||||
id: data.id as string,
|
||||
title: data.title as string,
|
||||
description: parsed.body.trim(),
|
||||
status: isTaskStatus(data.status) ? data.status : TaskStatus.TODO,
|
||||
priority: isTaskPriority(data.priority)
|
||||
? data.priority
|
||||
: TaskPriority.MEDIUM,
|
||||
status: normalizeTaskStatus(data.status),
|
||||
priority: normalizeTaskPriority(data.priority),
|
||||
tags: (data.tags as string[]) ?? [],
|
||||
assignee: (data.assignee as string) ?? "",
|
||||
created: toISO(data.created),
|
||||
|
||||
Reference in New Issue
Block a user