From 5259c1c6a7122067b03f7c4a0cf5be08c8010efe Mon Sep 17 00:00:00 2001 From: William Floyd Date: Wed, 13 May 2026 09:36:06 -0700 Subject: [PATCH] Test for https://github.com/mikefarah/yq/issues/2677 --- pkg/yqlib/operator_anchors_aliases_test.go | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/pkg/yqlib/operator_anchors_aliases_test.go b/pkg/yqlib/operator_anchors_aliases_test.go index ef54c478..d1ca5e6d 100644 --- a/pkg/yqlib/operator_anchors_aliases_test.go +++ b/pkg/yqlib/operator_anchors_aliases_test.go @@ -288,7 +288,51 @@ var badAnchorOperatorScenarios = []expressionScenario{ }, } +var mixedMergeTagStyleDocument = ` +constants: + errorResponse: &errorResponse + status: 200 +endpoints: + - condition: true + !!merge <<: *errorResponse + - condition: false + <<: *errorResponse +other: + !!merge <<: *errorResponse +somethingElse: + <<: *errorResponse +` + +var mixedMergeTagStyleExplodedDocument = ` +constants: + errorResponse: + status: 200 +endpoints: + - condition: true + status: 200 + - condition: false + status: 200 +other: + status: 200 +somethingElse: + status: 200 +` + var anchorOperatorScenarios = []expressionScenario{ + { + skipDoc: true, + description: "explicit !!merge tag on << key is preserved through ireduce merge", + document: mixedMergeTagStyleDocument, + expression: `. as $item ireduce ({}; . *+ $item)`, + expected: []string{"D0, P[], (!!map)::" + mixedMergeTagStyleDocument}, + }, + { + skipDoc: true, + description: "explode expands << merge keys regardless of explicit tag style (!!merge or plain)", + document: mixedMergeTagStyleDocument, + expression: `explode(.)`, + expected: []string{"D0, P[], (!!map)::" + mixedMergeTagStyleExplodedDocument}, + }, { skipDoc: true, description: "merge anchor to alias alias",