Fix Erroridf/Warnidf mixed case issue

Fixes #12617
This commit is contained in:
Bjørn Erik Pedersen
2024-06-22 18:41:18 +02:00
parent 3b724462c2
commit 8731d88222
7 changed files with 53 additions and 23 deletions

View File

@@ -779,7 +779,7 @@ title: "Post 1"
{{ .Title }}|{{ .Params.foo }}$
`
b := Test(t, files)
b.AssertLogNotContains(`looks like a path with an extension`)
b.AssertLogContains(`! looks like a path with an extension`)
}
func TestCascadConfigExtensionInPath(t *testing.T) {
@@ -813,7 +813,7 @@ foo = 'bar'
path = '/p1.md'
`
b := Test(t, files)
b.AssertLogNotContains(`looks like a path with an extension`)
b.AssertLogContains(`! looks like a path with an extension`)
}
func TestCascadeIssue12172(t *testing.T) {

View File

@@ -206,24 +206,34 @@ func (b *lockingBuffer) Write(p []byte) (n int, err error) {
return
}
// AssertLogContains asserts that the last build log contains the given strings.
// Each string can be negated with a "! " prefix.
func (s *IntegrationTestBuilder) AssertLogContains(els ...string) {
s.Helper()
for _, el := range els {
s.Assert(s.lastBuildLog, qt.Contains, el)
}
}
func (s *IntegrationTestBuilder) AssertLogNotContains(els ...string) {
s.Helper()
for _, el := range els {
s.Assert(s.lastBuildLog, qt.Not(qt.Contains), el)
var negate bool
el, negate = s.negate(el)
check := qt.Contains
if negate {
check = qt.Not(qt.Contains)
}
s.Assert(s.lastBuildLog, check, el)
}
}
// AssertLogNotContains asserts that the last build log does matches the given regular expressions.
// The regular expressions can be negated with a "! " prefix.
func (s *IntegrationTestBuilder) AssertLogMatches(expression string) {
s.Helper()
var negate bool
expression, negate = s.negate(expression)
re := regexp.MustCompile(expression)
s.Assert(re.MatchString(s.lastBuildLog), qt.IsTrue, qt.Commentf(s.lastBuildLog))
checker := qt.IsTrue
if negate {
checker = qt.IsFalse
}
s.Assert(re.MatchString(s.lastBuildLog), checker, qt.Commentf(s.lastBuildLog))
}
func (s *IntegrationTestBuilder) AssertBuildCountData(count int) {
@@ -258,6 +268,15 @@ func (s *IntegrationTestBuilder) AssertFileCount(dirname string, expected int) {
s.Assert(count, qt.Equals, expected)
}
func (s *IntegrationTestBuilder) negate(match string) (string, bool) {
var negate bool
if strings.HasPrefix(match, "! ") {
negate = true
match = strings.TrimPrefix(match, "! ")
}
return match, negate
}
func (s *IntegrationTestBuilder) AssertFileContent(filename string, matches ...string) {
s.Helper()
content := strings.TrimSpace(s.FileContent(filename))
@@ -270,10 +289,7 @@ func (s *IntegrationTestBuilder) AssertFileContent(filename string, matches ...s
continue
}
var negate bool
if strings.HasPrefix(match, "! ") {
negate = true
match = strings.TrimPrefix(match, "! ")
}
match, negate = s.negate(match)
if negate {
s.Assert(content, qt.Not(qt.Contains), match, cm)
continue

View File

@@ -674,7 +674,7 @@ menu: main
b.AssertFileContent("public/en/index.html", `<a href="/en/p1/">p1</a><a href="/en/p2/">p2</a>`)
b.AssertFileContent("public/fr/index.html", `<a href="/fr/p1/">p1</a>`)
b.AssertLogNotContains("WARN")
b.AssertLogContains("! WARN")
}
func TestSectionPagesIssue12399(t *testing.T) {

View File

@@ -562,7 +562,7 @@ title: "p1"
b = hugolib.Test(t, files, hugolib.TestOptWarn())
b.AssertLogNotContains("WARN")
b.AssertLogContains("! WARN")
}
func TestPagesFromGoTmplPathWarningsPathResource(t *testing.T) {
@@ -597,7 +597,7 @@ value: data1
b = hugolib.Test(t, files, hugolib.TestOptWarn())
b.AssertLogNotContains("WARN")
b.AssertLogContains("! WARN")
}
func TestPagesFromGoTmplShortcodeNoPreceddingCharacterIssue12544(t *testing.T) {