package yqlib import ( "testing" "github.com/mikefarah/yq/v4/test" ) func TestPathTreeNoArgsForTwoArgOp(t *testing.T) { _, err := NewExpressionParser().ParseExpression("=") test.AssertResultComplex(t, "'=' expects 2 args but there is 0", err.Error()) } func TestPathTreeOneLhsArgsForTwoArgOp(t *testing.T) { _, err := NewExpressionParser().ParseExpression(".a =") test.AssertResultComplex(t, "'=' expects 2 args but there is 1", err.Error()) } func TestPathTreeOneRhsArgsForTwoArgOp(t *testing.T) { _, err := NewExpressionParser().ParseExpression("= .a") test.AssertResultComplex(t, "'=' expects 2 args but there is 1", err.Error()) } func TestPathTreeTwoArgsForTwoArgOp(t *testing.T) { _, err := NewExpressionParser().ParseExpression(".a = .b") test.AssertResultComplex(t, nil, err) } func TestPathTreeNoArgsForOneArgOp(t *testing.T) { _, err := NewExpressionParser().ParseExpression("explode") test.AssertResultComplex(t, "'explode' expects 1 arg but received none", err.Error()) } func TestPathTreeOneArgForOneArgOp(t *testing.T) { _, err := NewExpressionParser().ParseExpression("explode(.)") test.AssertResultComplex(t, nil, err) } func TestPathTreeExtraArgs(t *testing.T) { _, err := NewExpressionParser().ParseExpression("sortKeys(.) explode(.)") test.AssertResultComplex(t, "expected end of expression but found 'explode', please check expression syntax", err.Error()) }