diff --git a/elements_test.go b/elements_test.go index c216cef..ea9cc2c 100644 --- a/elements_test.go +++ b/elements_test.go @@ -205,6 +205,52 @@ func TestCommentEscaping(t *testing.T) { expected = `` actual = Comment("comment cannot end with this string ` + actual = Comment("This comment has -- double dashes -- in it").Render() + assert.Equal(t, expected, actual) + + // Test null characters + expected = `` + actual = Comment("This comment has \x00 null character").Render() + assert.Equal(t, expected, actual) + + // Test empty comment + expected = `` + actual = Comment("").Render() + assert.Equal(t, expected, actual) + + // Test whitespace-only comment + expected = `` + actual = Comment(" ").Render() + assert.Equal(t, expected, actual) + + // Test complex case with multiple escaping patterns + expected = `` + actual = Comment(" --!>").Render() + assert.Equal(t, expected, actual) + + // Test edge cases that might be missing + // Comments that start with ` + actual = Comment("` + actual = Comment("test ` + actual = Comment("test -").Render() + assert.Equal(t, expected, actual) + + // Comments that start with single dash + expected = `` + actual = Comment("- test").Render() + assert.Equal(t, expected, actual) } // ========== Lists ========== diff --git a/utils.go b/utils.go index 9062066..97c22fb 100644 --- a/utils.go +++ b/utils.go @@ -16,6 +16,9 @@ var commentContentsReplacer = strings.NewReplacer( "", "-->", "--!>", "--!>", + "--", "--", + "\x00", "�", + "<", "<", ) // If conditionally renders one of the provided elements based on the condition