about summary refs log tree commit diff stats
path: root/components/attributes_test.go
diff options
context:
space:
mode:
authorMarkus Wüstenberg2020-12-10 13:00:23 +0100
committerGitHub2020-12-10 13:00:23 +0100
commita76262652b227c95ce140f3698c46f59b79354ac (patch)
tree15987ad4a4a4f830f0df9fc110faf667fe83514a /components/attributes_test.go
parenta7e24c6cddaafb98091c3989c9da7779eeba30b5 (diff)
downloadgomponents-a76262652b227c95ce140f3698c46f59b79354ac.tar.lz
gomponents-a76262652b227c95ce140f3698c46f59b79354ac.tar.zst
gomponents-a76262652b227c95ce140f3698c46f59b79354ac.zip
Move elements and attributes into html package (#52)
This makes it easier to use dot-imports.

Also updated the readme and examples with new usage, and move the `Classes` helper into the `components` package.
Diffstat (limited to 'components/attributes_test.go')
-rw-r--r--components/attributes_test.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/components/attributes_test.go b/components/attributes_test.go
new file mode 100644
index 0000000..bf3e93b
--- /dev/null
+++ b/components/attributes_test.go
@@ -0,0 +1,32 @@
+package components_test
+
+import (
+	"testing"
+
+	g "github.com/maragudk/gomponents"
+	"github.com/maragudk/gomponents/assert"
+	c "github.com/maragudk/gomponents/components"
+)
+
+func TestClasses(t *testing.T) {
+	t.Run("given a map, returns sorted keys from the map with value true", func(t *testing.T) {
+		assert.Equal(t, ` class="boheme-hat hat partyhat"`, c.Classes{
+			"boheme-hat": true,
+			"hat":        true,
+			"partyhat":   true,
+			"turtlehat":  false,
+		})
+	})
+
+	t.Run("renders as attribute in an element", func(t *testing.T) {
+		e := g.El("div", c.Classes{"hat": true})
+		assert.Equal(t, `<div class="hat"></div>`, e)
+	})
+
+	t.Run("also works with fmt", func(t *testing.T) {
+		a := c.Classes{"hat": true}
+		if a.String() != ` class="hat"` {
+			t.FailNow()
+		}
+	})
+}