From d78ed7efc7925a7a49cbf939fd45b1b2680a37f4 Mon Sep 17 00:00:00 2001 From: Markus Wüstenberg Date: Mon, 21 Sep 2020 11:27:37 +0200 Subject: Add a Write function (#11) --- gomponents_test.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'gomponents_test.go') diff --git a/gomponents_test.go b/gomponents_test.go index fdc8c52..ef5b17a 100644 --- a/gomponents_test.go +++ b/gomponents_test.go @@ -1,6 +1,8 @@ package gomponents_test import ( + "errors" + "strings" "testing" g "github.com/maragudk/gomponents" @@ -76,3 +78,31 @@ func TestRaw(t *testing.T) { assert.Equal(t, "
", e) }) } + +type erroringWriter struct{} + +func (w *erroringWriter) Write(p []byte) (n int, err error) { + return 0, errors.New("don't want to write") +} + +func TestWrite(t *testing.T) { + t.Run("writes to the writer", func(t *testing.T) { + e := g.El("div") + var b strings.Builder + err := g.Write(&b, e) + if err != nil { + t.FailNow() + } + if b.String() != e.Render() { + t.FailNow() + } + }) + + t.Run("errors on write error", func(t *testing.T) { + e := g.El("div") + err := g.Write(&erroringWriter{}, e) + if err == nil { + t.FailNow() + } + }) +} -- cgit 1.4.1