package html_test import ( "bytes" "code.squareroundforest.org/arpio/html" . "code.squareroundforest.org/arpio/html/tags" "testing" ) func TestWrap(t *testing.T) { t.Run("broken unicode", func(t *testing.T) { b := []byte{'f', 0xc2, 'o', 'o'} span := Span(string(b)) var buf bytes.Buffer if err := html.RenderIndent(&buf, html.Indentation{Indent: "\t"}, span); err == nil { t.Fatal() } }) t.Run("multiple words", func(t *testing.T) { span := Span("foo bar baz") var buf bytes.Buffer if err := html.RenderIndent(&buf, html.Indentation{Indent: "\t", PWidth: 2}, span); err != nil { t.Fatal(err) } expect := "\nfoo\nbar\nbaz\n" if buf.String() != expect { printBytes(buf.String(), expect) t.Fatal(buf.String()) } }) t.Run("tag not split", func(t *testing.T) { span := Span("foo ", Span("bar", Attr("qux", 42)), " baz") var buf bytes.Buffer if err := html.RenderIndent(&buf, html.Indentation{Indent: "X", PWidth: 2}, span); err != nil { t.Fatal(err) } if buf.String() != "\nfoo\n\nbar\n\nbaz\n" { t.Fatal(buf.String()) } }) t.Run("normal text", func(t *testing.T) { div := Div(Span("foo bar baz qux quux corge")) var buf bytes.Buffer if err := html.RenderIndent(&buf, html.Indentation{Indent: "\t", PWidth: 9}, div); err != nil { t.Fatal(err) } if buf.String() != "