Files
xboct-flow/src/projectConfig/serializeProjectConfig.test.ts
T

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([]);
});
});