mirror of
https://github.com/mikefarah/yq.git
synced 2026-09-05 00:54:51 +08:00
Generic ast (#1829)
Remove dependency on yaml.Node for internal AST representation. Yaml decoder is now just another decoder.
This commit is contained in:
@@ -60,7 +60,7 @@ var commentOperatorScenarios = []expressionScenario{
|
||||
document: `a: cat`,
|
||||
expression: `.a line_comment="single"`,
|
||||
expected: []string{
|
||||
"D0, P[], (doc)::a: cat # single\n",
|
||||
"D0, P[], (!!map)::a: cat # single\n",
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -69,7 +69,7 @@ var commentOperatorScenarios = []expressionScenario{
|
||||
document: "a:\n b: things",
|
||||
expression: `(.a | key) line_comment="single"`,
|
||||
expected: []string{
|
||||
"D0, P[], (doc)::a: # single\n b: things\n",
|
||||
"D0, P[], (!!map)::a: # single\n b: things\n",
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -77,7 +77,7 @@ var commentOperatorScenarios = []expressionScenario{
|
||||
document: "a: cat\nb: dog",
|
||||
expression: `.a line_comment=.b`,
|
||||
expected: []string{
|
||||
"D0, P[], (doc)::a: cat # dog\nb: dog\n",
|
||||
"D0, P[], (!!map)::a: cat # dog\nb: dog\n",
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -85,8 +85,8 @@ var commentOperatorScenarios = []expressionScenario{
|
||||
document: "a: cat\n---\na: dog",
|
||||
expression: `.a line_comment |= documentIndex`,
|
||||
expected: []string{
|
||||
"D0, P[], (doc)::a: cat # 0\n",
|
||||
"D1, P[], (doc)::a: dog # 1\n",
|
||||
"D0, P[], (!!map)::a: cat # 0\n",
|
||||
"D1, P[], (!!map)::a: dog # 1\n",
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -146,7 +146,7 @@ var commentOperatorScenarios = []expressionScenario{
|
||||
document: `a: cat`,
|
||||
expression: `. head_comment="single"`,
|
||||
expected: []string{
|
||||
"D0, P[], (doc)::# single\n\na: cat\n",
|
||||
"D0, P[], (!!map)::# single\na: cat\n",
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -154,7 +154,7 @@ var commentOperatorScenarios = []expressionScenario{
|
||||
document: "f: foo\na:\n b: cat",
|
||||
expression: `(.a | key) head_comment="single"`,
|
||||
expected: []string{
|
||||
"D0, P[], (doc)::f: foo\n# single\na:\n b: cat\n",
|
||||
"D0, P[], (!!map)::f: foo\n# single\na:\n b: cat\n",
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -162,7 +162,7 @@ var commentOperatorScenarios = []expressionScenario{
|
||||
document: `a: cat`,
|
||||
expression: `. foot_comment=.a`,
|
||||
expected: []string{
|
||||
"D0, P[], (doc)::a: cat\n# cat\n",
|
||||
"D0, P[], (!!map)::a: cat\n# cat\n",
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -171,7 +171,7 @@ var commentOperatorScenarios = []expressionScenario{
|
||||
document: "a: cat\n\n# hi",
|
||||
expression: `. foot_comment=""`,
|
||||
expected: []string{
|
||||
"D0, P[], (doc)::a: cat\n",
|
||||
"D0, P[], (!!map)::a: cat\n",
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -179,7 +179,7 @@ var commentOperatorScenarios = []expressionScenario{
|
||||
document: `a: cat`,
|
||||
expression: `. foot_comment=.b.d`,
|
||||
expected: []string{
|
||||
"D0, P[], (doc)::a: cat\n",
|
||||
"D0, P[], (!!map)::a: cat\n",
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -187,7 +187,7 @@ var commentOperatorScenarios = []expressionScenario{
|
||||
document: `a: cat`,
|
||||
expression: `. foot_comment|=.b.d`,
|
||||
expected: []string{
|
||||
"D0, P[], (doc)::a: cat\n",
|
||||
"D0, P[], (!!map)::a: cat\n",
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -195,7 +195,7 @@ var commentOperatorScenarios = []expressionScenario{
|
||||
document: "a: cat # comment\nb: dog # leave this",
|
||||
expression: `.a line_comment=""`,
|
||||
expected: []string{
|
||||
"D0, P[], (doc)::a: cat\nb: dog # leave this\n",
|
||||
"D0, P[], (!!map)::a: cat\nb: dog # leave this\n",
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -260,6 +260,42 @@ var commentOperatorScenarios = []expressionScenario{
|
||||
"D0, P[], (!!str)::have a great day\nno really\n",
|
||||
},
|
||||
},
|
||||
{
|
||||
description: "leading spaces",
|
||||
skipDoc: true,
|
||||
document: " # hi",
|
||||
expression: `.`,
|
||||
expected: []string{
|
||||
"D0, P[], (!!null):: # hi\n",
|
||||
},
|
||||
},
|
||||
{
|
||||
description: "string spaces",
|
||||
skipDoc: true,
|
||||
document: "# hi\ncat\n",
|
||||
expression: `.`,
|
||||
expected: []string{
|
||||
"D0, P[], (!!str)::# hi\ncat\n",
|
||||
},
|
||||
},
|
||||
{
|
||||
description: "leading spaces with new line",
|
||||
skipDoc: true,
|
||||
document: " # hi\n",
|
||||
expression: `.`,
|
||||
expected: []string{
|
||||
"D0, P[], (!!null):: # hi\n",
|
||||
},
|
||||
},
|
||||
{
|
||||
description: "directive",
|
||||
skipDoc: true,
|
||||
document: "%YAML 1.1\n# hi\n",
|
||||
expression: `.`,
|
||||
expected: []string{
|
||||
"D0, P[], (!!null)::%YAML 1.1\n# hi\n",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
func TestCommentOperatorScenarios(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user