learnlytics-go/templ/generator/test-text-whitespace/render_test.go
2025-03-20 12:35:13 +01:00

54 lines
1.3 KiB
Go

package testtextwhitespace
import (
"context"
"strings"
"testing"
"github.com/a-h/templ"
"github.com/google/go-cmp/cmp"
)
func TestTextWhitespace(t *testing.T) {
for _, test := range []struct {
name string
input templ.Component
expected string
}{
{
name: "whitespace is added within templ statements",
input: WhitespaceIsAddedWithinTemplStatements(),
expected: WhitespaceIsAddedWithinTemplStatementsExpected,
},
{
name: "inline elements are not padded",
input: InlineElementsAreNotPadded(),
expected: InlineElementsAreNotPaddedExpected,
},
{
name: "whitespace in HTML is normalised",
input: WhiteSpaceInHTMLIsNormalised(),
expected: WhiteSpaceInHTMLIsNormalisedExpected,
},
{
name: "whitespace around values is maintained",
input: WhiteSpaceAroundValues(),
expected: WhiteSpaceAroundValuesExpected,
},
{
name: "whitespace around templated values is maintained",
input: WhiteSpaceAroundTemplatedValues("templ", "allows whitespace around templated values."),
expected: WhiteSpaceAroundTemplatedValuesExpected,
},
} {
w := new(strings.Builder)
err := test.input.Render(context.Background(), w)
if err != nil {
t.Errorf("failed to render: %v", err)
}
if diff := cmp.Diff(test.expected, w.String()); diff != "" {
t.Error(diff)
}
}
}