package html import ( "strings" "testing" ) func TestRawNode_Render(t *testing.T) { ctx := NewContext() node := Raw("hello") got := node.Render(ctx) if got != "hello" { t.Errorf("Raw(\"hello\").Render() = %q, want %q", got, "hello") } } func TestElNode_Render(t *testing.T) { ctx := NewContext() node := El("div", Raw("content")) got := node.Render(ctx) want := "
content
" if got != want { t.Errorf("El(\"div\", Raw(\"content\")).Render() = %q, want %q", got, want) } } func TestElNode_Nested(t *testing.T) { ctx := NewContext() node := El("div", El("span", Raw("inner"))) got := node.Render(ctx) want := "
inner
" if got != want { t.Errorf("nested El().Render() = %q, want %q", got, want) } } func TestElNode_MultipleChildren(t *testing.T) { ctx := NewContext() node := El("div", Raw("a"), Raw("b")) got := node.Render(ctx) want := "
ab
" if got != want { t.Errorf("El with multiple children = %q, want %q", got, want) } } func TestElNode_VoidElement(t *testing.T) { ctx := NewContext() node := El("br") got := node.Render(ctx) want := "
" if got != want { t.Errorf("El(\"br\").Render() = %q, want %q", got, want) } } func TestTextNode_Render(t *testing.T) { ctx := NewContext() node := Text("hello") got := node.Render(ctx) if got != "hello" { t.Errorf("Text(\"hello\").Render() = %q, want %q", got, "hello") } } func TestTextNode_Escapes(t *testing.T) { ctx := NewContext() node := Text("") got := node.Render(ctx) if strings.Contains(got, "