added test case for no values

This commit is contained in:
Natasha Sarkar
2020-11-06 13:10:18 -08:00
parent 73d91dda6e
commit 886f73aa0f
2 changed files with 22 additions and 1 deletions

View File

@@ -393,7 +393,7 @@ func (f FieldMatcher) Filter(rn *RNode) (*RNode, error) {
return rn, nil return rn, nil
} }
return nil, nil return nil, nil
case f.Value.YNode() != nil && rn.value.Value == f.Value.YNode().Value: case GetValue(rn) == GetValue(f.Value):
return rn, nil return rn, nil
default: default:
return nil, nil return nil, nil

View File

@@ -137,6 +137,27 @@ func TestElementSetter(t *testing.T) {
_, err = node.Pipe(ElementSetter{Values: []string{"b"}}) _, err = node.Pipe(ElementSetter{Values: []string{"b"}})
assert.EqualError(t, err, "wrong Node Kind for expected: ScalarNode was MappingNode: value: {a: b}") assert.EqualError(t, err, "wrong Node Kind for expected: ScalarNode was MappingNode: value: {a: b}")
node = MustParse(`
- a: b
- c: d
`)
// If given a key and no values, ElementSetter will
// change node to be an empty list
rn, err = node.Pipe(ElementSetter{Keys: []string{"a"}})
assert.NoError(t, err)
assert.Nil(t, rn)
assert.Equal(t, `[]
`, assertNoErrorString(t)(node.String()))
node = MustParse(`
- a: b
- c: d
`)
// Return error because ElementSetter will assume all elements are scalar when
// there is only value provided.
_, err = node.Pipe(ElementSetter{Values: []string{"b"}})
assert.EqualError(t, err, "wrong Node Kind for expected: ScalarNode was MappingNode: value: {a: b}")
node = MustParse(` node = MustParse(`
- a - a
- b - b