From cc4ec165eb72f89298185f44c7984dc9874e5aeb Mon Sep 17 00:00:00 2001 From: Mateusz Hawrus Date: Thu, 1 Feb 2024 19:17:19 +0100 Subject: [PATCH] add tests --- error_test.go | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 error_test.go diff --git a/error_test.go b/error_test.go new file mode 100644 index 00000000..cd1e5b64 --- /dev/null +++ b/error_test.go @@ -0,0 +1,54 @@ +package yaml + +import ( + "testing" + + "golang.org/x/xerrors" + + "github.com/goccy/go-yaml/internal/errors" + "github.com/goccy/go-yaml/token" +) + +func TestAsSyntaxError(t *testing.T) { + tests := []struct { + input error + expected *SyntaxError + }{ + { + input: nil, + expected: nil, + }, + { + input: xerrors.New("dummy test"), + expected: nil, + }, + { + input: errors.ErrSyntax("some error", &token.Token{Value: "123"}), + expected: &SyntaxError{ + Msg: "some error", + Token: &token.Token{Value: "123"}, + }, + }, + { + input: xerrors.Errorf( + "something went wrong: %w", + errors.ErrSyntax("some error", &token.Token{Value: "123"})), + expected: &SyntaxError{ + Msg: "some error", + Token: &token.Token{Value: "123"}, + }, + }, + } + for _, test := range tests { + syntaxErr := AsSyntaxError(test.input) + if test.expected == nil { + if syntaxErr != nil { + t.Fatalf("wanted nil, but go %v", syntaxErr) + } + return + } + if *test.expected.Token != *syntaxErr.Token && test.expected.Msg != syntaxErr.Msg { + t.Fatalf("unexpected output.\nexpect:\n[%v]\nactual:\n[%v]", test.expected, syntaxErr) + } + } +}