summaryrefslogtreecommitdiffstats
path: root/dependencies/pkg/mod/github.com/goccy/go-yaml@v1.9.6/printer/printer_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'dependencies/pkg/mod/github.com/goccy/go-yaml@v1.9.6/printer/printer_test.go')
-rw-r--r--dependencies/pkg/mod/github.com/goccy/go-yaml@v1.9.6/printer/printer_test.go223
1 files changed, 223 insertions, 0 deletions
diff --git a/dependencies/pkg/mod/github.com/goccy/go-yaml@v1.9.6/printer/printer_test.go b/dependencies/pkg/mod/github.com/goccy/go-yaml@v1.9.6/printer/printer_test.go
new file mode 100644
index 0000000..2afa74f
--- /dev/null
+++ b/dependencies/pkg/mod/github.com/goccy/go-yaml@v1.9.6/printer/printer_test.go
@@ -0,0 +1,223 @@
+package printer_test
+
+import (
+ "fmt"
+ "testing"
+
+ "github.com/goccy/go-yaml/lexer"
+ "github.com/goccy/go-yaml/printer"
+)
+
+func Test_Printer(t *testing.T) {
+ yml := `---
+text: aaaa
+text2: aaaa
+ bbbb
+ cccc
+ dddd
+ eeee
+text3: ffff
+ gggg
+ hhhh
+ iiii
+ jjjj
+bool: true
+number: 10
+anchor: &x 1
+alias: *x
+`
+ t.Run("print starting from tokens[3]", func(t *testing.T) {
+ tokens := lexer.Tokenize(yml)
+ var p printer.Printer
+ actual := "\n" + p.PrintErrorToken(tokens[3], false)
+ expect := `
+ 1 | ---
+> 2 | text: aaaa
+ ^
+ 3 | text2: aaaa
+ 4 | bbbb
+ 5 | cccc
+ 6 | dddd
+ 7 | eeee
+ 8 | `
+ if actual != expect {
+ t.Fatalf("unexpected output: expect:[%s]\n actual:[%s]", expect, actual)
+ }
+ })
+ t.Run("print starting from tokens[4]", func(t *testing.T) {
+ tokens := lexer.Tokenize(yml)
+ var p printer.Printer
+ actual := "\n" + p.PrintErrorToken(tokens[4], false)
+ expect := `
+ 1 | ---
+ 2 | text: aaaa
+> 3 | text2: aaaa
+ 4 | bbbb
+ 5 | cccc
+ 6 | dddd
+ 7 | eeee
+ ^
+`
+ if actual != expect {
+ t.Fatalf("unexpected output: expect:[%s]\n actual:[%s]", expect, actual)
+ }
+ })
+ t.Run("print starting from tokens[6]", func(t *testing.T) {
+ tokens := lexer.Tokenize(yml)
+ var p printer.Printer
+ actual := "\n" + p.PrintErrorToken(tokens[6], false)
+ expect := `
+ 1 | ---
+ 2 | text: aaaa
+> 3 | text2: aaaa
+ 4 | bbbb
+ 5 | cccc
+ 6 | dddd
+ 7 | eeee
+ ^
+ 8 | text3: ffff
+ 9 | gggg
+ 10 | hhhh
+ 11 | iiii
+ 12 | jjjj
+ 13 | `
+ if actual != expect {
+ t.Fatalf("unexpected output: expect:[%s]\n actual:[%s]", expect, actual)
+ }
+ })
+ t.Run("print error token with document header", func(t *testing.T) {
+ tokens := lexer.Tokenize(`---
+a:
+ b:
+ c:
+ d: e
+ f: g
+ h: i
+
+---
+`)
+ expect := `
+ 3 | b:
+ 4 | c:
+ 5 | d: e
+> 6 | f: g
+ ^
+ 7 | h: i
+ 8 |
+ 9 | ---`
+ var p printer.Printer
+ actual := "\n" + p.PrintErrorToken(tokens[12], false)
+ if actual != expect {
+ t.Fatalf("unexpected output: expect:[%s]\n actual:[%s]", expect, actual)
+ }
+ })
+ t.Run("output with color", func(t *testing.T) {
+ t.Run("token6", func(t *testing.T) {
+ tokens := lexer.Tokenize(yml)
+ var p printer.Printer
+ t.Logf("\n%s", p.PrintErrorToken(tokens[6], true))
+ })
+ t.Run("token9", func(t *testing.T) {
+ tokens := lexer.Tokenize(yml)
+ var p printer.Printer
+ t.Logf("\n%s", p.PrintErrorToken(tokens[9], true))
+ })
+ t.Run("token12", func(t *testing.T) {
+ tokens := lexer.Tokenize(yml)
+ var p printer.Printer
+ t.Logf("\n%s", p.PrintErrorToken(tokens[12], true))
+ })
+ })
+ t.Run("print error message", func(t *testing.T) {
+ var p printer.Printer
+ src := "message"
+ msg := p.PrintErrorMessage(src, false)
+ if msg != src {
+ t.Fatal("unexpected result")
+ }
+ p.PrintErrorMessage(src, true)
+ })
+}
+
+func TestPrinter_Anchor(t *testing.T) {
+ expected := `
+anchor: &x 1
+alias: *x`
+ tokens := lexer.Tokenize(expected)
+ var p printer.Printer
+ got := p.PrintTokens(tokens)
+ if expected != got {
+ t.Fatalf("unexpected output: expect:[%s]\n actual:[%s]", expected, got)
+ }
+}
+
+func Test_Printer_Multiline(t *testing.T) {
+ yml := `
+text1: 'aaaa
+ bbbb
+ cccc'
+text2: "ffff
+ gggg
+ hhhh"
+text3: hello
+`
+ tc := []struct {
+ token int
+ want string
+ }{
+ {
+ token: 2,
+ want: `
+> 2 | text1: 'aaaa
+ 3 | bbbb
+ 4 | cccc'
+ ^
+ 5 | text2: "ffff
+ 6 | gggg
+ 7 | hhhh"`,
+ },
+ {token: 3,
+ want: `
+ 2 | text1: 'aaaa
+ 3 | bbbb
+ 4 | cccc'
+> 5 | text2: "ffff
+ 6 | gggg
+ 7 | hhhh"
+ ^
+ 8 | text3: hello`,
+ },
+ {token: 5,
+ want: `
+ 2 | text1: 'aaaa
+ 3 | bbbb
+ 4 | cccc'
+> 5 | text2: "ffff
+ 6 | gggg
+ 7 | hhhh"
+ ^
+ 8 | text3: hello`,
+ },
+ {token: 6,
+ want: `
+ 5 | text2: "ffff
+ 6 | gggg
+ 7 | hhhh"
+> 8 | text3: hello
+ ^
+`,
+ },
+ }
+ for _, tt := range tc {
+ name := fmt.Sprintf("print starting from tokens[%d]", tt.token)
+ t.Run(name, func(t *testing.T) {
+ tokens := lexer.Tokenize(yml)
+ var p printer.Printer
+ got := "\n" + p.PrintErrorToken(tokens[tt.token], false)
+ want := tt.want
+ if got != want {
+ t.Fatalf("PrintErrorToken() got: %s\n want:%s\n", want, got)
+ }
+ })
+ }
+}