github.com/goreleaser/goreleaser@v1.25.1/pkg/config/config_archive_files_test.go (about) 1 package config 2 3 import ( 4 "fmt" 5 "testing" 6 "time" 7 8 "github.com/goreleaser/goreleaser/internal/yaml" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestArchiveFiles_justString(t *testing.T) { 13 var actual Archive 14 15 err := yaml.UnmarshalStrict([]byte(` 16 files: 17 - ./script.sh 18 `), &actual) 19 require.NoError(t, err) 20 require.Equal(t, []File{ 21 {Source: "./script.sh"}, 22 }, actual.Files) 23 } 24 25 func TestArchiveFiles_stringFiles(t *testing.T) { 26 var actual Archive 27 28 err := yaml.UnmarshalStrict([]byte(` 29 files: 30 - ./script.sh 31 - src: ./foo 32 dst: ./bar 33 info: 34 owner: carlos 35 group: users 36 `), &actual) 37 require.NoError(t, err) 38 require.Equal(t, []File{ 39 {Source: "./script.sh"}, 40 { 41 Source: "./foo", 42 Destination: "./bar", 43 Info: FileInfo{ 44 Owner: "carlos", 45 Group: "users", 46 }, 47 }, 48 }, actual.Files) 49 } 50 51 func TestArchiveFiles_complex(t *testing.T) { 52 var actual Archive 53 now := time.Now().UTC().Truncate(time.Second) 54 55 // 2021-07-17T15:14:10.264931-03:00 56 57 err := yaml.UnmarshalStrict([]byte(fmt.Sprintf(` 58 files: 59 - src: ./foo 60 dst: ./bar 61 info: 62 owner: carlos 63 group: users 64 - src: ./foobar 65 dst: ./barzaz 66 info: 67 owner: carlos 68 group: users 69 mode: 0644 70 mtime: "%s" 71 `, now.Format(time.RFC3339Nano))), &actual) 72 require.NoError(t, err) 73 74 require.Equal(t, []File{ 75 { 76 Source: "./foo", 77 Destination: "./bar", 78 Info: FileInfo{ 79 Owner: "carlos", 80 Group: "users", 81 }, 82 }, 83 { 84 Source: "./foobar", 85 Destination: "./barzaz", 86 Info: FileInfo{ 87 Owner: "carlos", 88 Group: "users", 89 Mode: 0o644, 90 MTime: now.Format(time.RFC3339Nano), 91 ParsedMTime: time.Time{}, 92 }, 93 }, 94 }, actual.Files) 95 }