From 6c80acbd5e314dd92fc075551ffabafaae01dca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Fri, 19 Apr 2019 09:07:21 +0200 Subject: [PATCH] hugolib: Add some integration tests for in/uniq using Pages See #5875 See #5852 --- hugolib/collections_test.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/hugolib/collections_test.go b/hugolib/collections_test.go index b7e89eec9..41681bc73 100644 --- a/hugolib/collections_test.go +++ b/hugolib/collections_test.go @@ -118,6 +118,42 @@ tags_weight: %d "unionWeightedPages: page.WeightedPages 6") } +func TestCollectionsFuncs(t *testing.T) { + assert := require.New(t) + + pageContent := ` +--- +title: "Page" +tags: ["blue", "green"] +tags_weight: %d +--- + +` + b := newTestSitesBuilder(t) + b.WithSimpleConfigFile(). + WithContent("page1.md", fmt.Sprintf(pageContent, 10), "page2.md", fmt.Sprintf(pageContent, 20), + "page3.md", fmt.Sprintf(pageContent, 30)). + WithTemplatesAdded("index.html", ` +{{ $uniqPages := first 2 .Site.RegularPages | append .Site.RegularPages | uniq }} +{{ $inTrue := in .Site.RegularPages (index .Site.RegularPages 1) }} +{{ $inFalse := in .Site.RegularPages (.Site.Home) }} + +{{ printf "uniqPages: %T %d" $uniqPages (len $uniqPages) }} +{{ printf "inTrue: %t" $inTrue }} +{{ printf "inFalse: %t" $inFalse }} +`) + b.CreateSites().Build(BuildCfg{}) + + assert.Equal(1, len(b.H.Sites)) + require.Len(t, b.H.Sites[0].RegularPages(), 3) + + b.AssertFileContent("public/index.html", + "uniqPages: page.Pages 3", + "inTrue: true", + "inFalse: false", + ) +} + func TestAppendFunc(t *testing.T) { assert := require.New(t)