Fixed has operator for top level node

This commit is contained in:
Mike Farah 2021-01-12 09:30:24 +11:00
parent 286590b01e
commit 8f5270cc63
2 changed files with 11 additions and 2 deletions

View File

@ -24,8 +24,9 @@ func hasOperator(d *dataTreeNavigator, matchingNodes *list.List, pathNode *PathT
candidate := el.Value.(*CandidateNode) candidate := el.Value.(*CandidateNode)
// grab the first value // grab the first value
var contents = candidate.Node.Content candidateNode := UnwrapDoc(candidate.Node)
switch candidate.Node.Kind { var contents = candidateNode.Content
switch candidateNode.Kind {
case yaml.MappingNode: case yaml.MappingNode:
candidateHasKey := false candidateHasKey := false
for index := 0; index < len(contents) && !candidateHasKey; index = index + 2 { for index := 0; index < len(contents) && !candidateHasKey; index = index + 2 {

View File

@ -5,6 +5,14 @@ import (
) )
var hasOperatorScenarios = []expressionScenario{ var hasOperatorScenarios = []expressionScenario{
{
skipDoc: true,
document: `a: hello`,
expression: `has("a")`,
expected: []string{
"D0, P[], (!!bool)::true\n",
},
},
{ {
description: "Has map key", description: "Has map key",
document: `- a: "yes" document: `- a: "yes"