github.com/goreleaser/goreleaser@v1.25.1/pkg/config/config_build_hook_test.go (about) 1 package config 2 3 import ( 4 "testing" 5 6 "github.com/goreleaser/goreleaser/internal/yaml" 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestBuildHook_justString(t *testing.T) { 11 var actual BuildHookConfig 12 13 err := yaml.UnmarshalStrict([]byte(`pre: ./script.sh`), &actual) 14 require.NoError(t, err) 15 require.Equal(t, Hook{ 16 Cmd: "./script.sh", 17 Env: nil, 18 }, actual.Pre[0]) 19 } 20 21 func TestBuildHook_stringCmds(t *testing.T) { 22 var actual BuildHookConfig 23 24 err := yaml.UnmarshalStrict([]byte(`pre: 25 - ./script.sh 26 - second-script.sh 27 `), &actual) 28 require.NoError(t, err) 29 30 require.Equal(t, Hooks{ 31 { 32 Cmd: "./script.sh", 33 Env: nil, 34 }, 35 { 36 Cmd: "second-script.sh", 37 Env: nil, 38 }, 39 }, actual.Pre) 40 } 41 42 func TestBuildHook_complex(t *testing.T) { 43 var actual BuildHookConfig 44 45 err := yaml.UnmarshalStrict([]byte(`pre: 46 - cmd: ./script.sh 47 env: 48 - TEST=value 49 `), &actual) 50 require.NoError(t, err) 51 require.Equal(t, Hook{ 52 Cmd: "./script.sh", 53 Env: []string{"TEST=value"}, 54 }, actual.Pre[0]) 55 }