all repos — gomponents @ 05e8f19a1e99691c807bc060e2e1656de298e842

HTML components in pure Go

fix flakey/version-dependent MapMap test

Alan Pearce
commit

05e8f19a1e99691c807bc060e2e1656de298e842

parent

299345cbbe3473cce0fdf818473bea1edbbc89b7

2 files changed, 20 insertions(+), 1 deletion(-)

changed files
M gomponents_test.gogomponents_test.go
@@ -332,7 +332,10 @@ items := map[string]string{"party": "hat", "super": "hat"}
e := g.El("ul", g.MapMap(items, func(key string, value string) g.Node { return g.El("li", g.Textf("%v: %v", key, value)) })) - assert.Equal(t, `<ul><li>party: hat</li><li>super: hat</li></ul>`, e) + assert.OneOf(t, []string{ + "<ul><li>party: hat</li><li>super: hat</li></ul>", + "<ul><li>super: hat</li><li>party: hat</li></ul>", + }, e) }) }
M internal/assert/assert.gointernal/assert/assert.go
@@ -2,6 +2,7 @@ // Package assert provides testing helpers.
package assert import ( + "slices" "strings" "testing"
@@ -20,6 +21,21 @@ }
if expected != b.String() { t.Fatalf(`expected "%v" but got "%v"`, expected, b.String()) } +} + +// OneOf checks if the given expected list includes the rendered Node string. +func OneOf(t *testing.T, expected []string, actual g.Node) { + t.Helper() + + var b strings.Builder + err := actual.Render(&b) + if err != nil { + t.Fatal("error rendering actual:", err) + } + if slices.Contains(expected, b.String()) { + return + } + t.Fatalf(`expected one of "%v" but got "%v"`, expected, b.String()) } // Error checks for a non-nil error.