From 12cef73a75b36b8b9d27c76b3a45468855e5760e Mon Sep 17 00:00:00 2001 From: kurochan Date: Mon, 5 Dec 2022 17:26:04 +0900 Subject: [PATCH 1/2] ast: append new line at the end of file --- ast/ast.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ast/ast.go b/ast/ast.go index 795f525..f685261 100644 --- a/ast/ast.go +++ b/ast/ast.go @@ -566,6 +566,10 @@ func (f *File) String() string { for _, doc := range f.Docs { docs = append(docs, doc.String()) } + if len(docs) > 0 { + // append new line at the end of file + docs = append(docs, "\n") + } return strings.Join(docs, "\n") } From 17af5c72fd251650249dbd438a4835292153e7ce Mon Sep 17 00:00:00 2001 From: kurochan Date: Mon, 5 Dec 2022 20:53:34 +0900 Subject: [PATCH 2/2] fix test --- ast/ast.go | 6 +++--- parser/parser_test.go | 6 +++--- path_test.go | 12 ++++++------ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ast/ast.go b/ast/ast.go index f685261..d5aa1d8 100644 --- a/ast/ast.go +++ b/ast/ast.go @@ -567,10 +567,10 @@ func (f *File) String() string { docs = append(docs, doc.String()) } if len(docs) > 0 { - // append new line at the end of file - docs = append(docs, "\n") + return strings.Join(docs, "\n") + "\n" + } else { + return "" } - return strings.Join(docs, "\n") } // DocumentNode type of Document diff --git a/parser/parser_test.go b/parser/parser_test.go index f284f45..6044699 100644 --- a/parser/parser_test.go +++ b/parser/parser_test.go @@ -595,7 +595,7 @@ i: 'j' for _, doc := range f.Docs { ast.Walk(&v, doc.Body) } - expect := fmt.Sprintf("\n%+v\n", f) + expect := fmt.Sprintf("\n%+v", f) if test.expect != expect { tokens.Dump() t.Fatalf("unexpected output: [%s] != [%s]", test.expect, expect) @@ -614,7 +614,7 @@ func TestNewLineChar(t *testing.T) { if err != nil { t.Fatalf("%+v", err) } - actual := fmt.Sprintf("%v\n", ast) + actual := fmt.Sprintf("%v", ast) expect := `a: "a" b: 1 ` @@ -800,7 +800,7 @@ foo: > # comment if err != nil { t.Fatalf("%+v", err) } - got := "\n" + f.String() + "\n" + got := "\n" + f.String() if test.yaml != got { t.Fatalf("expected:%s\ngot:%s", test.yaml, got) } diff --git a/path_test.go b/path_test.go index f6aac6d..4271da5 100644 --- a/path_test.go +++ b/path_test.go @@ -343,7 +343,7 @@ a: if err := path.MergeFromReader(file, strings.NewReader(test.src)); err != nil { t.Fatalf("%+v", err) } - actual := "\n" + file.String() + "\n" + actual := "\n" + file.String() if test.expected != actual { t.Fatalf("expected: %q. but got %q", test.expected, actual) } @@ -360,7 +360,7 @@ a: if err := path.MergeFromFile(file, src); err != nil { t.Fatalf("%+v", err) } - actual := "\n" + file.String() + "\n" + actual := "\n" + file.String() if test.expected != actual { t.Fatalf("expected: %q. but got %q", test.expected, actual) } @@ -380,7 +380,7 @@ a: if err := path.MergeFromNode(file, src.Docs[0]); err != nil { t.Fatalf("%+v", err) } - actual := "\n" + file.String() + "\n" + actual := "\n" + file.String() if test.expected != actual { t.Fatalf("expected: %q. but got %q", test.expected, actual) } @@ -525,7 +525,7 @@ building: if err := path.ReplaceWithReader(file, strings.NewReader(test.src)); err != nil { t.Fatalf("%+v", err) } - actual := "\n" + file.String() + "\n" + actual := "\n" + file.String() if test.expected != actual { t.Fatalf("expected: %q. but got %q", test.expected, actual) } @@ -542,7 +542,7 @@ building: if err := path.ReplaceWithFile(file, src); err != nil { t.Fatalf("%+v", err) } - actual := "\n" + file.String() + "\n" + actual := "\n" + file.String() if test.expected != actual { t.Fatalf("expected: %q. but got %q", test.expected, actual) } @@ -562,7 +562,7 @@ building: if err := path.ReplaceWithNode(file, src.Docs[0]); err != nil { t.Fatalf("%+v", err) } - actual := "\n" + file.String() + "\n" + actual := "\n" + file.String() if test.expected != actual { t.Fatalf("expected: %q. but got %q", test.expected, actual) }