package gomponents_test import ( "testing" g "github.com/maragudk/gomponents" ) func TestAttr(t *testing.T) { t.Run("renders just the local name with one argument", func(t *testing.T) { a := g.Attr("required") equal(t, " required", a.Render()) }) t.Run("renders the name and value when given two arguments", func(t *testing.T) { a := g.Attr("id", "hat") equal(t, ` id="hat"`, a.Render()) }) t.Run("panics with more than two arguments", func(t *testing.T) { called := false defer func() { if err := recover(); err != nil { called = true } }() g.Attr("name", "value", "what is this?") if !called { t.FailNow() } }) } func TestEl(t *testing.T) { t.Run("renders an empty element if no children given", func(t *testing.T) { e := g.El("div") equal(t, "
", e.Render()) }) t.Run("renders an empty element if only attributes given as children", func(t *testing.T) { e := g.El("div", g.Attr("class", "hat")) equal(t, ``, e.Render()) }) t.Run("renders an element, attributes, and element children", func(t *testing.T) { e := g.El("div", g.Attr("class", "hat"), g.El("span")) equal(t, `