yq/pkg/yqlib/operator_parent_test.go

38 lines
826 B
Go
Raw Normal View History

2021-11-23 23:16:48 +00:00
package yqlib
import (
"testing"
)
var parentOperatorScenarios = []expressionScenario{
{
description: "Simple example",
document: `a: {nested: cat}`,
expression: `.a.nested | parent`,
expected: []string{
"D0, P[a], (!!map)::{nested: cat}\n",
},
},
{
2021-11-23 23:59:19 +00:00
description: "Parent of nested matches",
document: `{a: {fruit: apple, name: bob}, b: {fruit: banana, name: sam}}`,
2021-11-23 23:16:48 +00:00
expression: `.. | select(. == "banana") | parent`,
expected: []string{
2021-11-23 23:59:19 +00:00
"D0, P[b], (!!map)::{fruit: banana, name: sam}\n",
2021-11-23 23:16:48 +00:00
},
},
{
description: "No parent",
document: `{}`,
expression: `parent`,
expected: []string{},
},
}
func TestParentOperatorScenarios(t *testing.T) {
for _, tt := range parentOperatorScenarios {
testScenario(t, &tt)
}
documentScenarios(t, "parent", parentOperatorScenarios)
}