mirror of
https://github.com/mikefarah/yq.git
synced 2024-11-12 05:38:04 +00:00
53 lines
1.1 KiB
Go
53 lines
1.1 KiB
Go
package yqlib
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/mikefarah/yq/v4/test"
|
|
)
|
|
|
|
type formatStringScenario struct {
|
|
description string
|
|
input string
|
|
expectedFormat *Format
|
|
expectedError string
|
|
}
|
|
|
|
var formatStringScenarios = []formatStringScenario{
|
|
{
|
|
description: "yaml",
|
|
input: "yaml",
|
|
expectedFormat: YamlFormat,
|
|
},
|
|
{
|
|
description: "Unknown format type",
|
|
input: "doc",
|
|
expectedError: "unknown format 'doc' please use",
|
|
},
|
|
{
|
|
description: "blank should error",
|
|
input: "",
|
|
expectedError: "unknown format '' please use",
|
|
},
|
|
}
|
|
|
|
func TestFormatFromString(t *testing.T) {
|
|
for _, tt := range formatStringScenarios {
|
|
actualFormat, actualError := FormatFromString(tt.input)
|
|
|
|
if tt.expectedError != "" {
|
|
if actualError == nil {
|
|
t.Errorf("Expected [%v] error but found none", tt.expectedError)
|
|
} else {
|
|
test.AssertResultWithContext(t, true, strings.Contains(actualError.Error(), tt.expectedError),
|
|
fmt.Sprintf("Expected [%v] to contain [%v]", actualError.Error(), tt.expectedError),
|
|
)
|
|
}
|
|
} else {
|
|
test.AssertResult(t, tt.expectedFormat, actualFormat)
|
|
}
|
|
}
|
|
}
|