package main import ( "testing" ) func TestLoadFlowCards_MapsStatuses(t *testing.T) { dir := t.TempDir() writeFixture(t, dir, "INDEX.md", "skip") writeFixture(t, dir, "0001-foo.md", "---\nid: 0001\nname: foo\nstatus: pending\n---\nbody\n") writeFixture(t, dir, "0002-bar.md", "---\nid: 0002\nname: bar\nstatus: running\n---\nbody\n") writeFixture(t, dir, "0003-baz.md", "---\nid: 0003\nname: baz\nstatus: done\n---\nbody\n") writeFixture(t, dir, "0004-bop.md", "---\nid: 0004\nname: bop\nstatus: deferred\n---\nbody\n") cards, err := loadFlowCards(dir) if err != nil { t.Fatalf("load: %v", err) } if len(cards) != 4 { t.Fatalf("expected 4 cards, got %d", len(cards)) } want := map[string]string{ "0001": "Pending", "0002": "Running", "0003": "Done", "0004": "Deferred", } for _, c := range cards { if want[c.ID] != c.ColumnID { t.Fatalf("%s: expected column %s, got %s", c.ID, want[c.ID], c.ColumnID) } } } func TestLoadFlowCards_MissingStatusDefaultsPending(t *testing.T) { dir := t.TempDir() writeFixture(t, dir, "0010-nostatus.md", "---\nid: 0010\nname: empty\n---\nbody\n") cards, err := loadFlowCards(dir) if err != nil { t.Fatalf("load: %v", err) } if len(cards) != 1 { t.Fatalf("expected 1 card") } if cards[0].ColumnID != "Pending" { t.Fatalf("expected Pending column, got %q", cards[0].ColumnID) } } func TestLoadFlowCards_MalformedDoesNotCrash(t *testing.T) { dir := t.TempDir() writeFixture(t, dir, "0011-bad.md", "---\nid: 0011\nstatus: pending\n : malformed yaml\n---\nbody\n") cards, err := loadFlowCards(dir) if err != nil { t.Fatalf("load: %v", err) } if len(cards) != 1 || cards[0].ParseError == "" { t.Fatalf("expected 1 card with ParseError, got %#v", cards) } }