feat: support folder index pages
This commit is contained in:
43
apps/server/internal/httpserver/handlers_test.go
Normal file
43
apps/server/internal/httpserver/handlers_test.go
Normal 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")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user