40 lines
1.2 KiB
Go
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")
|
|
}
|
|
}
|