diff options
Diffstat (limited to 'formatter')
-rw-r--r-- | formatter/formatter.go | 3 | ||||
-rw-r--r-- | formatter/formatter_test.go | 27 |
2 files changed, 30 insertions, 0 deletions
diff --git a/formatter/formatter.go b/formatter/formatter.go index 526de5a..1d8dd58 100644 --- a/formatter/formatter.go +++ b/formatter/formatter.go @@ -27,6 +27,9 @@ func PrintAst(ast parser.AstNode) { case parser.Text: printText(ast.Text) case parser.Normal: + if ast.Text == "/" { + return + } fmt.Printf("<%s", ast.Text) printAttrs(ast.Attrs) fmt.Print(">") diff --git a/formatter/formatter_test.go b/formatter/formatter_test.go index 4fe8035..870b904 100644 --- a/formatter/formatter_test.go +++ b/formatter/formatter_test.go @@ -252,3 +252,30 @@ func TestTrimRightSpaces(t *testing.T) { t.Fatalf("trimRightSpaces() returned ā%sā", sy) } } + +func TestPrintAstWithComments(t *testing.T) { + s := ` + html lang="en" { + body { + / p {= Hello, Sailor!} + p {= Hello, World!} + } + }` + result := `<html lang="en"><body><p>Hello, World!</p></body></html>` + + // Write the source to a temp file + r := strings.NewReader(s) + f, _ := os.CreateTemp("", "tmp*") + defer f.Close() + io.Copy(f, r) + f.Seek(0, 0) + ast, _ := parser.ParseFile(f) + + redirectStdout() + PrintAst(ast) + + out := restoreAndCapture() + if out != result { + t.Fatalf("PrintAst() printed unexpected string ā%sā", out) + } +} |