yq/pkg/yqlib/value_parser_test.go

35 lines
912 B
Go
Raw Normal View History

package yqlib
import (
"testing"
2019-12-09 02:44:53 +00:00
"github.com/mikefarah/yq/v3/test"
2020-01-08 21:17:56 +00:00
yaml "gopkg.in/yaml.v3"
)
var parseValueTests = []struct {
argument string
2020-01-08 21:17:56 +00:00
customTag string
expectedTag string
testDescription string
}{
2020-01-10 11:01:59 +00:00
{"true", "!!str", "!!str", "boolean forced as string"},
2020-01-19 21:42:08 +00:00
{"3", "!!int", "!!int", "int"},
{"cat", "", "", "default"},
}
2020-01-08 21:17:56 +00:00
func TestValueParserParse(t *testing.T) {
for _, tt := range parseValueTests {
2020-01-08 21:17:56 +00:00
actual := NewValueParser().Parse(tt.argument, tt.customTag)
test.AssertResultWithContext(t, tt.argument, actual.Value, tt.testDescription)
test.AssertResultWithContext(t, tt.expectedTag, actual.Tag, tt.testDescription)
test.AssertResult(t, yaml.ScalarNode, actual.Kind)
}
}
2020-01-08 21:17:56 +00:00
func TestValueParserParseEmptyArray(t *testing.T) {
actual := NewValueParser().Parse("[]", "")
test.AssertResult(t, "!!seq", actual.Tag)
test.AssertResult(t, yaml.SequenceNode, actual.Kind)
}