mirror of
https://github.com/taigrr/yq
synced 2026-03-22 04:12:37 -07:00
Prefix now supports arrays
This commit is contained in:
@@ -360,6 +360,26 @@ func TestPrefixCmd(t *testing.T) {
|
|||||||
assertResult(t, expectedOutput, result.Output)
|
assertResult(t, expectedOutput, result.Output)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestPrefixCmdArray(t *testing.T) {
|
||||||
|
content := `b:
|
||||||
|
c: 3
|
||||||
|
`
|
||||||
|
filename := writeTempYamlFile(content)
|
||||||
|
defer removeTempYamlFile(filename)
|
||||||
|
|
||||||
|
cmd := getRootCommand()
|
||||||
|
result := runCmd(cmd, fmt.Sprintf("prefix %s [0].d.[1]", filename))
|
||||||
|
if result.Error != nil {
|
||||||
|
t.Error(result.Error)
|
||||||
|
}
|
||||||
|
expectedOutput := `- d:
|
||||||
|
- null
|
||||||
|
- b:
|
||||||
|
c: 3
|
||||||
|
`
|
||||||
|
assertResult(t, expectedOutput, result.Output)
|
||||||
|
}
|
||||||
|
|
||||||
func TestPrefixCmd_MultiLayer(t *testing.T) {
|
func TestPrefixCmd_MultiLayer(t *testing.T) {
|
||||||
content := `b:
|
content := `b:
|
||||||
c: 3
|
c: 3
|
||||||
|
|||||||
5
yq.go
5
yq.go
@@ -440,9 +440,8 @@ func prefixProperty(cmd *cobra.Command, args []string) error {
|
|||||||
log.Debugf("Prefixing %v to doc %v", paths, currentIndex)
|
log.Debugf("Prefixing %v to doc %v", paths, currentIndex)
|
||||||
var mapDataBucket = dataBucket
|
var mapDataBucket = dataBucket
|
||||||
for _, key := range paths {
|
for _, key := range paths {
|
||||||
nestedBucket := make(map[string]interface{})
|
singlePath := []string{key}
|
||||||
nestedBucket[key] = mapDataBucket
|
mapDataBucket = updatedChildValue(nil, singlePath, mapDataBucket)
|
||||||
mapDataBucket = nestedBucket
|
|
||||||
}
|
}
|
||||||
return mapDataBucket, nil
|
return mapDataBucket, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user