50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { parseProjectConfig } from "./parseProjectConfig";
|
|
import { serializeProjectConfig } from "./serializeProjectConfig";
|
|
|
|
describe("serializeProjectConfig", () => {
|
|
it("round-trips tags", () => {
|
|
const yaml = serializeProjectConfig({
|
|
tags: ["bug", "docs"],
|
|
shownHiddenColumns: [],
|
|
});
|
|
expect(yaml).toContain("bug");
|
|
expect(yaml).toContain("docs");
|
|
const parsed = parseProjectConfig(yaml);
|
|
expect(parsed.isOk()).toBe(true);
|
|
if (parsed.isErr()) return;
|
|
expect(parsed.value.tags).toEqual(["bug", "docs"]);
|
|
});
|
|
|
|
it("serializes empty tags", () => {
|
|
const yaml = serializeProjectConfig({ tags: [], shownHiddenColumns: [] });
|
|
const parsed = parseProjectConfig(yaml);
|
|
expect(parsed.isOk()).toBe(true);
|
|
if (parsed.isErr()) return;
|
|
expect(parsed.value.tags).toEqual([]);
|
|
});
|
|
|
|
it("round-trips tags with shownHiddenColumns", () => {
|
|
const yaml = serializeProjectConfig({
|
|
tags: ["bug"],
|
|
shownHiddenColumns: ["backlog", "cancelled"],
|
|
});
|
|
const parsed = parseProjectConfig(yaml);
|
|
expect(parsed.isOk()).toBe(true);
|
|
if (parsed.isErr()) return;
|
|
expect(parsed.value.tags).toEqual(["bug"]);
|
|
expect(parsed.value.shownHiddenColumns).toEqual(["backlog", "cancelled"]);
|
|
});
|
|
|
|
it("serializes empty shownHiddenColumns", () => {
|
|
const yaml = serializeProjectConfig({
|
|
tags: [],
|
|
shownHiddenColumns: [],
|
|
});
|
|
const parsed = parseProjectConfig(yaml);
|
|
expect(parsed.isOk()).toBe(true);
|
|
if (parsed.isErr()) return;
|
|
expect(parsed.value.shownHiddenColumns).toEqual([]);
|
|
});
|
|
});
|