1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-01-10 03:47:03 +02:00
goreleaser/pkg/config/config_array_test.go
Carlos Alexandro Becker 979f8632b7
refactor: use require on all tests (#1839)
* refactor: use require on all tests

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

* refactor: use require on all tests

Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2020-10-06 12:48:04 +00:00

116 lines
1.9 KiB
Go

package config
import (
"testing"
"github.com/stretchr/testify/require"
yaml "gopkg.in/yaml.v2"
)
type Unmarshaled struct {
Strings StringArray `yaml:",omitempty"`
Flags FlagArray `yaml:",omitempty"`
}
type yamlUnmarshalTestCase struct {
yaml string
expected Unmarshaled
err string
}
var stringArrayTests = []yamlUnmarshalTestCase{
{
"",
Unmarshaled{},
"",
},
{
"strings: []",
Unmarshaled{
Strings: StringArray{},
},
"",
},
{
"strings: [one two, three]",
Unmarshaled{
Strings: StringArray{"one two", "three"},
},
"",
},
{
"strings: one two",
Unmarshaled{
Strings: StringArray{"one two"},
},
"",
},
{
"strings: {key: val}",
Unmarshaled{},
"yaml: unmarshal errors:\n line 1: cannot unmarshal !!map into string",
},
}
var flagArrayTests = []yamlUnmarshalTestCase{
{
"",
Unmarshaled{},
"",
},
{
"flags: []",
Unmarshaled{
Flags: FlagArray{},
},
"",
},
{
"flags: [one two, three]",
Unmarshaled{
Flags: FlagArray{"one two", "three"},
},
"",
},
{
"flags: one two",
Unmarshaled{
Flags: FlagArray{"one", "two"},
},
"",
},
{
"flags: {key: val}",
Unmarshaled{},
"yaml: unmarshal errors:\n line 1: cannot unmarshal !!map into string",
},
}
func TestStringArray(t *testing.T) {
for _, testCase := range stringArrayTests {
var actual Unmarshaled
err := yaml.UnmarshalStrict([]byte(testCase.yaml), &actual)
if testCase.err == "" {
require.NoError(t, err)
require.Equal(t, testCase.expected, actual)
} else {
require.EqualError(t, err, testCase.err)
}
}
}
func TestFlagArray(t *testing.T) {
for _, testCase := range flagArrayTests {
var actual Unmarshaled
err := yaml.UnmarshalStrict([]byte(testCase.yaml), &actual)
if testCase.err == "" {
require.NoError(t, err)
} else {
require.EqualError(t, err, testCase.err)
}
require.Equal(t, testCase.expected, actual)
}
}