From f387a7123040d9414350bf783bdeff17ac0572c7 Mon Sep 17 00:00:00 2001 From: Markus Wüstenberg Date: Thu, 22 Sep 2022 09:41:06 +0200 Subject: Add generic Map implementation (#108) Instead of waiting for a good time to switch the `Map` implementation, I've decided to just offer two implementations: one for Go versions before 1.18, and one for 1.18 and onwards. This is achieved using build tags in the source files. This is obviously a breaking change for consumers of this library that use Go 1.18 and onwards. See #88--- gomponents_generic_test.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 gomponents_generic_test.go (limited to 'gomponents_generic_test.go') diff --git a/gomponents_generic_test.go b/gomponents_generic_test.go new file mode 100644 index 0000000..0492ae3 --- /dev/null +++ b/gomponents_generic_test.go @@ -0,0 +1,34 @@ +//go:build go1.18 +// +build go1.18 + +package gomponents_test + +import ( + "os" + "testing" + + g "github.com/maragudk/gomponents" + "github.com/maragudk/gomponents/internal/assert" +) + +func TestMap(t *testing.T) { + t.Run("maps slices to nodes", func(t *testing.T) { + items := []string{"hat", "partyhat", "turtlehat"} + lis := g.Map(items, func(i string) g.Node { + return g.El("li", g.Text(i)) + }) + + list := g.El("ul", lis...) + + assert.Equal(t, `