mirror of
https://github.com/mikefarah/yq.git
synced 2026-07-04 19:35:38 +00:00
modify empty table decode
This commit is contained in:
parent
6d7aa384c4
commit
35d338cc24
@ -282,13 +282,13 @@ func (dec *tomlDecoder) processTable(currentNode *toml.Node) (bool, error) {
|
|||||||
tableValue = dec.parser.Expression()
|
tableValue = dec.parser.Expression()
|
||||||
// next expression is not table data, so we are done
|
// next expression is not table data, so we are done
|
||||||
if tableValue.Kind != toml.KeyValue {
|
if tableValue.Kind != toml.KeyValue {
|
||||||
log.Debug("got an empty table, returning")
|
log.Debug("got an empty table")
|
||||||
return true, nil
|
runAgainstCurrentExp = true
|
||||||
}
|
} else {
|
||||||
|
runAgainstCurrentExp, err = dec.decodeKeyValuesIntoMap(tableNodeValue, tableValue)
|
||||||
runAgainstCurrentExp, err = dec.decodeKeyValuesIntoMap(tableNodeValue, tableValue)
|
if err != nil && !errors.Is(err, io.EOF) {
|
||||||
if err != nil && !errors.Is(err, io.EOF) {
|
return false, err
|
||||||
return false, err
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -23,6 +23,7 @@ street = "first street"
|
|||||||
[owner]
|
[owner]
|
||||||
name = "Tom Preston-Werner"
|
name = "Tom Preston-Werner"
|
||||||
`
|
`
|
||||||
|
|
||||||
var expectedTableArrayBeforeOwners = `owner:
|
var expectedTableArrayBeforeOwners = `owner:
|
||||||
addresses:
|
addresses:
|
||||||
- street: first street
|
- street: first street
|
||||||
@ -67,6 +68,29 @@ var emptyTable = `
|
|||||||
|
|
||||||
var emptyTableExpected = "dependencies: {}\n"
|
var emptyTableExpected = "dependencies: {}\n"
|
||||||
|
|
||||||
|
var multipleEmptyTables = `
|
||||||
|
[firstEmptyTable]
|
||||||
|
[firstTableWithContent]
|
||||||
|
key = "value"
|
||||||
|
[secondEmptyTable]
|
||||||
|
[thirdEmptyTable]
|
||||||
|
[secondTableWithContent]
|
||||||
|
key = "value"
|
||||||
|
[fourthEmptyTable]
|
||||||
|
[fifthEmptyTable]
|
||||||
|
`
|
||||||
|
|
||||||
|
var expectedMultipleEmptyTables = `firstEmptyTable: {}
|
||||||
|
firstTableWithContent:
|
||||||
|
key: value
|
||||||
|
secondEmptyTable: {}
|
||||||
|
thirdEmptyTable: {}
|
||||||
|
secondTableWithContent:
|
||||||
|
key: value
|
||||||
|
fourthEmptyTable: {}
|
||||||
|
fifthEmptyTable: {}
|
||||||
|
`
|
||||||
|
|
||||||
var sampleWithHeader = `
|
var sampleWithHeader = `
|
||||||
[servers]
|
[servers]
|
||||||
|
|
||||||
@ -238,6 +262,13 @@ var tomlScenarios = []formatScenario{
|
|||||||
expected: expectedSampleWithHeader,
|
expected: expectedSampleWithHeader,
|
||||||
scenarioType: "decode",
|
scenarioType: "decode",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
description: "Parse: multiple empty tables",
|
||||||
|
skipDoc: true,
|
||||||
|
input: multipleEmptyTables,
|
||||||
|
expected: expectedMultipleEmptyTables,
|
||||||
|
scenarioType: "decode",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
func testTomlScenario(t *testing.T, s formatScenario) {
|
func testTomlScenario(t *testing.T, s formatScenario) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user