Files
hq/00-META/checks/walk_check_test.go
T

40 lines
1.2 KiB
Go

package checks
import (
"reflect"
"testing"
"testing/fstest"
)
func TestMarkdownFilesSkipsToolFolders(t *testing.T) {
fsys := fstest.MapFS{
"a.md": {Data: []byte("x")},
"b/c.md": {Data: []byte("x")},
"b/c.txt": {Data: []byte("x")},
".git/d.md": {Data: []byte("x")},
".claude/e.md": {Data: []byte("x")},
".work/f/g.md": {Data: []byte("x")},
}
got := markdownFiles(fsys)
want := []string{"a.md", "b/c.md"}
if !reflect.DeepEqual(got, want) {
t.Fatalf("markdownFiles = %q, want %q", got, want)
}
}
func TestFrontmatterReadsScalarsAndLists(t *testing.T) {
f := frontmatter("---\nlayer: to-be\ndecisions:\n - ADR 0001\n - ADR 0002\ncode: []\ncodes: [a, b]\n---\nbody\n")
if f.scalar("layer") != "to-be" {
t.Errorf("layer = %q", f.scalar("layer"))
}
if !reflect.DeepEqual(f.list("decisions"), []string{"ADR 0001", "ADR 0002"}) {
t.Errorf("decisions = %q", f.list("decisions"))
}
if len(f.list("code")) != 0 || !reflect.DeepEqual(f.list("codes"), []string{"a", "b"}) {
t.Errorf("code = %q, codes = %q", f.list("code"), f.list("codes"))
}
if frontmatter("no frontmatter") != nil || frontmatter("---\nunclosed") != nil {
t.Error("a document without a closed block has no frontmatter")
}
}