mirror of
https://github.com/mikefarah/yq.git
synced 2026-07-07 14:25:38 +00:00
test: Add tests for UnwrapScalar in shell encoder
- Introduce assertEncodesToUnwrapped helper function. - Add TestShellVariablesEncoderUnwrapScalar to verify quote-free output with -r. - Add TestShellVariablesEncoderDefaultQuoting to confirm default quoting behavior without -r. - Ensure comprehensive testing of conditional quoting logic for shell output.
This commit is contained in:
parent
fe0ed2a8b1
commit
328830092d
@ -135,3 +135,41 @@ func TestShellVariablesEncoderCustomSeparatorArray(t *testing.T) {
|
|||||||
func TestShellVariablesEncoderCustomSeparatorSingleChar(t *testing.T) {
|
func TestShellVariablesEncoderCustomSeparatorSingleChar(t *testing.T) {
|
||||||
assertEncodesToWithSeparator(t, "a:\n b: value", "aXb=value", "X")
|
assertEncodesToWithSeparator(t, "a:\n b: value", "aXb=value", "X")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func assertEncodesToUnwrapped(t *testing.T, yaml string, shellvars string) {
|
||||||
|
var output bytes.Buffer
|
||||||
|
writer := bufio.NewWriter(&output)
|
||||||
|
|
||||||
|
originalUnwrapScalar := ConfiguredShellVariablesPreferences.UnwrapScalar
|
||||||
|
defer func() {
|
||||||
|
ConfiguredShellVariablesPreferences.UnwrapScalar = originalUnwrapScalar
|
||||||
|
}()
|
||||||
|
|
||||||
|
ConfiguredShellVariablesPreferences.UnwrapScalar = true
|
||||||
|
|
||||||
|
var encoder = NewShellVariablesEncoder()
|
||||||
|
inputs, err := readDocuments(strings.NewReader(yaml), "test.yml", 0, NewYamlDecoder(ConfiguredYamlPreferences))
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
node := inputs.Front().Value.(*CandidateNode)
|
||||||
|
err = encoder.Encode(writer, node)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
writer.Flush()
|
||||||
|
|
||||||
|
test.AssertResult(t, shellvars, strings.TrimSuffix(output.String(), "\n"))
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestShellVariablesEncoderUnwrapScalar(t *testing.T) {
|
||||||
|
assertEncodesToUnwrapped(t, "a: Lewis Carroll", "a=Lewis Carroll")
|
||||||
|
assertEncodesToUnwrapped(t, "b: 123", "b=123")
|
||||||
|
assertEncodesToUnwrapped(t, "c: true", "c=true")
|
||||||
|
assertEncodesToUnwrapped(t, "d: value with spaces", "d=value with spaces")
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestShellVariablesEncoderDefaultQuoting(t *testing.T) {
|
||||||
|
assertEncodesTo(t, "a: Lewis Carroll", "a='Lewis Carroll'")
|
||||||
|
assertEncodesTo(t, "b: 123 456", "b='123 456'")
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user