mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-01-08 03:31:59 +02:00
ec2db4a727
<!-- Hi, thanks for contributing! Please make sure you read our CONTRIBUTING guide. Also, add tests and the respective documentation changes as well. --> <!-- If applied, this commit will... --> ... <!-- Why is this change being made? --> ... <!-- # Provide links to any relevant tickets, URLs or other resources --> ... --------- Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
116 lines
1.9 KiB
Go
116 lines
1.9 KiB
Go
package config
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/goreleaser/goreleaser/v2/internal/yaml"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
type Unmarshaled struct {
|
|
Strings StringArray `yaml:"strings,omitempty"`
|
|
Flags FlagArray `yaml:"flags,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)
|
|
}
|
|
}
|