hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit f60714b5a139553c0bcbcd6319c4603d7e35a099
parent 215a715ddd698731fd81aed9cfaf7e37826e2467
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Wed,  9 Feb 2022 16:37:21 +0100

Add a migration test helper

Diffstat:
Mhugolib/testhelpers_test.go | 29+++++++++++++++++++++++++++++
1 file changed, 29 insertions(+), 0 deletions(-)
diff --git a/hugolib/testhelpers_test.go b/hugolib/testhelpers_test.go
@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"image/jpeg"
 	"io"
+	"io/fs"
 	"math/rand"
 	"os"
 	"path/filepath"
@@ -702,6 +703,34 @@ func (s *sitesBuilder) AssertFileContentFn(filename string, f func(s string) boo
 	}
 }
 
+// Helper to migrate tests to new format.
+func (s *sitesBuilder) DumpTxtar() string {
+	var sb strings.Builder
+
+	skipRe := regexp.MustCompile(`^(public|resources|package-lock.json|go.sum)`)
+
+	afero.Walk(s.Fs.Source, s.workingDir, func(path string, info fs.FileInfo, err error) error {
+		rel := strings.TrimPrefix(path, s.workingDir+"/")
+		if skipRe.MatchString(rel) {
+			if info.IsDir() {
+				return filepath.SkipDir
+			}
+			return nil
+		}
+		if info == nil || info.IsDir() {
+			return nil
+		}
+		sb.WriteString(fmt.Sprintf("-- %s --\n", rel))
+		b, err := afero.ReadFile(s.Fs.Source, path)
+		s.Assert(err, qt.IsNil)
+		sb.WriteString(strings.TrimSpace(string(b)))
+		sb.WriteString("\n")
+		return nil
+	})
+
+	return sb.String()
+}
+
 func (s *sitesBuilder) AssertHome(matches ...string) {
 	s.AssertFileContent("public/index.html", matches...)
 }