test: refactor login template test to use substring checks
This commit is contained in:
@@ -2,12 +2,11 @@ package templates
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"regexp"
|
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestLoginTemplateTextSnapshot(t *testing.T) {
|
func TestLoginTemplateShowsCoreCopy(t *testing.T) {
|
||||||
r, err := ProvideRenderer()
|
r, err := ProvideRenderer()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("ProvideRenderer: %v", err)
|
t.Fatalf("ProvideRenderer: %v", err)
|
||||||
@@ -18,25 +17,15 @@ func TestLoginTemplateTextSnapshot(t *testing.T) {
|
|||||||
t.Fatalf("ExecuteFragment: %v", err)
|
t.Fatalf("ExecuteFragment: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
got := visibleTextSnapshot(buf.String())
|
body := buf.String()
|
||||||
const want = "Sign in to your account\nEmail address\nPassword\nSign In"
|
for _, want := range []string{
|
||||||
if got != want {
|
"Sign in to your account",
|
||||||
t.Fatalf("login text snapshot mismatch\n got: %q\nwant: %q", got, want)
|
"Email address",
|
||||||
|
"Password",
|
||||||
|
"Sign In",
|
||||||
|
} {
|
||||||
|
if !strings.Contains(body, want) {
|
||||||
|
t.Fatalf("login template missing %q in output:\n%s", want, body)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func visibleTextSnapshot(html string) string {
|
|
||||||
tags := regexp.MustCompile(`<[^>]+>`)
|
|
||||||
spaces := regexp.MustCompile(`[ \t]+`)
|
|
||||||
blankLines := regexp.MustCompile(`\n+`)
|
|
||||||
|
|
||||||
text := tags.ReplaceAllString(html, "\n")
|
|
||||||
text = spaces.ReplaceAllString(text, " ")
|
|
||||||
lines := strings.Split(text, "\n")
|
|
||||||
for i, line := range lines {
|
|
||||||
lines[i] = strings.TrimSpace(line)
|
|
||||||
}
|
|
||||||
text = strings.Join(lines, "\n")
|
|
||||||
text = blankLines.ReplaceAllString(text, "\n")
|
|
||||||
return strings.TrimSpace(text)
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user