github.com/Jeffail/benthos/v3@v3.65.0/public/bloblang/parse_error_test.go (about) 1 package bloblang 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestParseErrors(t *testing.T) { 11 tests := []struct { 12 name string 13 mapping string 14 expLine int 15 expCol int 16 errContains string 17 }{ 18 { 19 name: "Bad assignment error", 20 mapping: ` 21 root = 22 # there wasn't a value! 23 `, 24 expLine: 2, 25 expCol: 8, 26 errContains: "expected query", 27 }, 28 { 29 name: "Bad function args error", 30 mapping: ` 31 root.foo = this.foo 32 root.bar = this.bar.uppercase().replace("something)`, 33 expLine: 3, 34 expCol: 52, 35 errContains: "expected end quote", 36 }, 37 } 38 39 for _, test := range tests { 40 test := test 41 t.Run(test.name, func(t *testing.T) { 42 _, err := Parse(test.mapping) 43 require.Error(t, err) 44 45 pErr, ok := err.(*ParseError) 46 require.True(t, ok) 47 48 assert.Equal(t, test.expLine, pErr.Line) 49 assert.Equal(t, test.expCol, pErr.Column) 50 assert.Contains(t, pErr.ErrorMultiline(), test.errContains, pErr.ErrorMultiline()) 51 }) 52 } 53 }