Fix add op when there are not matches piped in, #2383, #2384

This commit is contained in:
Mike Farah
2025-06-12 14:48:10 +10:00
parent b15ce77cad
commit 88bfbec97b
3 changed files with 55 additions and 1 deletions
+45
View File
@@ -5,6 +5,51 @@ import (
)
var addOperatorScenarios = []expressionScenario{
{
skipDoc: true,
expression: `"foo" + "bar"`,
expected: []string{
"D0, P[], (!!str)::foobar\n",
},
},
{
skipDoc: true,
expression: `[] | .[] | "foo" + .`,
expected: []string{},
},
{
skipDoc: true,
expression: `[] | .[] | . + "foo"`,
expected: []string{},
},
{
skipDoc: true,
expression: `select(.) | "foo" + "bar"`,
expected: []string{
"D0, P[], (!!str)::foobar\n", // jq does not do this :/ - but yq has for quite some time.
},
},
{
skipDoc: true,
document: "apples: 3",
expression: `.apples + 3`,
expected: []string{
"D0, P[apples], (!!int)::6\n",
},
},
{
skipDoc: true,
document: "apples: 3",
expression: `.bobo + 3`,
expected: []string{
"D0, P[], (!!int)::3\n",
},
},
{
skipDoc: true,
expression: `select(.) | "cat" + .`,
expected: []string{},
},
{
skipDoc: true,
document: `[{a: foo, b: bar}, {a: 1, b: 2}]`,