Create a struct with all of Hugo's config options

Primary motivation is documentation, but it will also hopefully simplify the code.

Also,

* Lower case the default output format names; this is in line with the custom ones (map keys) and how
it's treated all the places. This avoids doing `stringds.EqualFold` everywhere.

Closes #10896
Closes #10620
This commit is contained in:
Bjørn Erik Pedersen
2023-01-04 18:24:36 +01:00
parent 6aededf6b4
commit 241b21b0fd
337 changed files with 13377 additions and 14898 deletions

View File

@@ -19,10 +19,7 @@ import (
"html/template"
"testing"
"github.com/gohugoio/hugo/config"
qt "github.com/frankban/quicktest"
"github.com/gohugoio/hugo/output"
)
func TestSplitPages(t *testing.T) {
@@ -194,58 +191,6 @@ func doTestPagerNoPages(t *testing.T, paginator *Paginator) {
c.Assert(pageOne.PageSize(), qt.Equals, 5)
}
func TestPaginationURLFactory(t *testing.T) {
t.Parallel()
c := qt.New(t)
cfg := config.New()
cfg.Set("paginatePath", "zoo")
for _, uglyURLs := range []bool{false, true} {
c.Run(fmt.Sprintf("uglyURLs=%t", uglyURLs), func(c *qt.C) {
tests := []struct {
name string
d TargetPathDescriptor
baseURL string
page int
expected string
expectedUgly string
}{
{
"HTML home page 32",
TargetPathDescriptor{Kind: KindHome, Type: output.HTMLFormat},
"http://example.com/", 32, "/zoo/32/", "/zoo/32.html",
},
{
"JSON home page 42",
TargetPathDescriptor{Kind: KindHome, Type: output.JSONFormat},
"http://example.com/", 42, "/zoo/42/index.json", "/zoo/42.json",
},
}
for _, test := range tests {
d := test.d
cfg.Set("baseURL", test.baseURL)
cfg.Set("uglyURLs", uglyURLs)
d.UglyURLs = uglyURLs
pathSpec := newTestPathSpecFor(cfg)
d.PathSpec = pathSpec
factory := newPaginationURLFactory(d)
got := factory(test.page)
if uglyURLs {
c.Assert(got, qt.Equals, test.expectedUgly)
} else {
c.Assert(got, qt.Equals, test.expected)
}
}
})
}
}
func TestProbablyEqualPageLists(t *testing.T) {
t.Parallel()
fivePages := createTestPages(5)