feat: support folder index pages

This commit is contained in:
2026-04-29 09:36:52 -04:00
parent 8c454de809
commit d371c3c602
7 changed files with 223 additions and 21 deletions

View File

@@ -0,0 +1,43 @@
package httpserver
import (
"testing"
"time"
"github.com/tim/md-hub-secure/apps/server/internal/docs"
)
func TestBuildBrowserUsesFolderIndex(t *testing.T) {
browser := buildBrowser([]docs.DocumentRecord{
{
Path: "guide/index.md",
Title: "Guide",
UpdatedAt: time.Now(),
},
{
Path: "guide/setup.md",
Title: "Setup",
UpdatedAt: time.Now(),
},
}, "guide/index.md")
if len(browser.Columns) != 2 {
t.Fatalf("len(browser.Columns) = %d, want 2", len(browser.Columns))
}
root := browser.Columns[0].Items
if len(root) != 1 {
t.Fatalf("len(root items) = %d, want 1", len(root))
}
if !root[0].IsFolder || root[0].Name != "Guide" || root[0].URL != "/docs/guide" {
t.Fatalf("root folder = %#v, want Guide folder linking to /docs/guide", root[0])
}
child := browser.Columns[1].Items
if len(child) != 1 {
t.Fatalf("len(child items) = %d, want 1", len(child))
}
if child[0].Path == "guide/index.md" {
t.Fatalf("folder index file should be represented by the folder, not repeated as a child file")
}
}