Fix tests

This commit is contained in:
Mihail Vratchanski 2025-06-07 12:51:24 +03:00
parent f3d302b390
commit 67572e3027
2 changed files with 32 additions and 11 deletions

View File

@ -60,6 +60,15 @@ var anchorOperatorScenarios = []expressionScenario{
document: "a: &a\n - 0\nc:\n <<: [*a]\n", document: "a: &a\n - 0\nc:\n <<: [*a]\n",
expectedError: "merge anchor only supports maps, got !!seq instead", expectedError: "merge anchor only supports maps, got !!seq instead",
expression: "explode(.)", expression: "explode(.)",
skipForGoccy: true, // goccy yaml parser throws a different error
},
{
skipDoc: true,
description: "merge anchor not map",
document: "a: &a\n - 0\nc:\n <<: [*a]\n",
expectedError: "merge anchor only supports maps, got !!seq instead a: &a",
expression: "explode(.)",
skipForYamlV3: true, // yaml.v3 parser throws a different error
}, },
{ {
description: "Merge one map", description: "Merge one map",
@ -275,6 +284,15 @@ var anchorOperatorScenarios = []expressionScenario{
expected: []string{ expected: []string{
"D0, P[], (!!map)::{f: {a: cat, b: {foo: cat}, cat: {foo: cat}}}\n", "D0, P[], (!!map)::{f: {a: cat, b: {foo: cat}, cat: {foo: cat}}}\n",
}, },
skipForGoccy: true, // can't handle no space between alias
},
{
skipDoc: true,
document: `{f : {a: &a cat, b: &b {foo: *a}, *a : *b}}`,
expression: `explode(.f)`,
expected: []string{
"D0, P[], (!!map)::{f: {a: cat, b: {foo: cat}, cat: {foo: cat}}}\n",
},
}, },
{ {
description: "Dereference and update a field", description: "Dereference and update a field",

View File

@ -30,10 +30,9 @@ type expressionScenario struct {
dontFormatInputForDoc bool // dont format input doc for documentation generation dontFormatInputForDoc bool // dont format input doc for documentation generation
requiresFormat string requiresFormat string
skipForGoccy bool skipForGoccy bool
skipForYamlV3 bool
} }
var goccyTesting = false
var testingDecoder = NewYamlDecoder(ConfiguredYamlPreferences) var testingDecoder = NewYamlDecoder(ConfiguredYamlPreferences)
func TestMain(m *testing.M) { func TestMain(m *testing.M) {
@ -44,23 +43,19 @@ func TestMain(m *testing.M) {
ConfiguredYamlPreferences.ColorsEnabled = false ConfiguredYamlPreferences.ColorsEnabled = false
ConfiguredJSONPreferences.ColorsEnabled = false ConfiguredJSONPreferences.ColorsEnabled = false
goccyTesting = os.Getenv("GOCCY") == "true"
if goccyTesting {
testingDecoder = NewGoccyYAMLDecoder(ConfiguredYamlPreferences)
}
Now = func() time.Time { Now = func() time.Time {
return time.Date(2021, time.May, 19, 1, 2, 3, 4, time.UTC) return time.Date(2021, time.May, 19, 1, 2, 3, 4, time.UTC)
} }
ConfiguredYamlPreferences.UseGoccyParser = false testingDecoder = NewGoccyYAMLDecoder(ConfiguredYamlPreferences)
ConfiguredYamlPreferences.UseGoccyParser = true
exitCode := m.Run() exitCode := m.Run()
if exitCode != 0 { if exitCode != 0 {
os.Exit(exitCode) os.Exit(exitCode)
} }
ConfiguredYamlPreferences.UseGoccyParser = true testingDecoder = NewYamlDecoder(ConfiguredYamlPreferences)
ConfiguredYamlPreferences.UseGoccyParser = false
exitCode = m.Run() exitCode = m.Run()
os.Exit(exitCode) os.Exit(exitCode)
@ -82,8 +77,16 @@ func readDocument(content string, fakefilename string, fakeFileIndex int) (*list
func testScenario(t *testing.T, s *expressionScenario) { func testScenario(t *testing.T, s *expressionScenario) {
if s.skipForGoccy { if s.skipForGoccy {
return if ConfiguredYamlPreferences.UseGoccyParser {
t.Skipf("skipping scenario %v for yaml v3 parser", s.description)
}
} }
if s.skipForYamlV3 {
if !ConfiguredYamlPreferences.UseGoccyParser {
t.Skipf("skipping scenario %v for yaml v3 parser", s.description)
}
}
var err error var err error
node, err := getExpressionParser().ParseExpression(s.expression) node, err := getExpressionParser().ParseExpression(s.expression)
if err != nil { if err != nil {