learnlytics-go/templ/generator/test-whitespace-around-go-keywords/render_test.go

79 lines
2.4 KiB
Go
Raw Normal View History

2025-03-20 12:35:13 +01:00
package testwhitespacearoundgokeywords
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 consistent in a true evaluated if statement",
input: WhitespaceIsConsistentInIf(true, false),
expected: WhitespaceIsConsistentInTrueIfExpected,
},
{
name: "whitespace is consistent in a true evaluated else if statement",
input: WhitespaceIsConsistentInIf(false, true),
expected: WhitespaceIsConsistentInTrueElseIfExpected,
},
{
name: "whitespace is consistent in a true evaluated else statement",
input: WhitespaceIsConsistentInIf(false, false),
expected: WhitespaceIsConsistentInTrueElseExpected,
},
{
name: "whitespace is consistent in a false evaluated if statement",
input: WhitespaceIsConsistentInFalseIf(),
expected: WhitespaceIsConsistentInFalseIfExpected,
},
{
name: "whitespace is consistent in a switch statement with a true case",
input: WhitespaceIsConsistentInSwitch(1),
expected: WhitespaceIsConsistentInOneSwitchExpected,
},
{
name: "whitespace is consistent in a switch statement with a default case",
input: WhitespaceIsConsistentInSwitch(2),
expected: WhitespaceIsConsistentInDefaultSwitchExpected,
},
{
name: "whitespace is consistent in a switch statement with no default case and no true cases",
input: WhitespaceIsConsistentInSwitchNoDefault(),
expected: WhitespaceIsConsistentInSwitchNoDefaultExpected,
},
{
name: "whitespace is consistent in a for statement that runs 0 times",
input: WhitespaceIsConsistentInFor(0),
expected: WhitespaceIsConsistentInForZeroExpected,
},
{
name: "whitespace is consistent in a for statement that runs 1 times",
input: WhitespaceIsConsistentInFor(1),
expected: WhitespaceIsConsistentInForOneExpected,
},
{
name: "whitespace is consistent in a for statement that runs 3 times",
input: WhitespaceIsConsistentInFor(3),
expected: WhitespaceIsConsistentInForThreeExpected,
},
} {
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)
}
}
}