github.com/ahmet2mir/goreleaser@v0.180.3-0.20210927151101-8e5ee5a9b8c5/pkg/archive/archive_test.go (about)

     1  package archive
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/goreleaser/goreleaser/pkg/config"
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func TestArchive(t *testing.T) {
    12  	folder := t.TempDir()
    13  	empty, err := os.Create(folder + "/empty.txt")
    14  	require.NoError(t, err)
    15  	require.NoError(t, empty.Close())
    16  	require.NoError(t, os.Mkdir(folder+"/folder-inside", 0o755))
    17  
    18  	for _, format := range []string{"tar.gz", "zip", "gz", "tar.xz", "tar", "willbeatargzanyway"} {
    19  		format := format
    20  		t.Run(format, func(t *testing.T) {
    21  			file, err := os.Create(folder + "/folder." + format)
    22  			require.NoError(t, err)
    23  			archive := New(file)
    24  			t.Cleanup(func() {
    25  				require.NoError(t, archive.Close())
    26  				require.NoError(t, file.Close())
    27  			})
    28  			require.NoError(t, archive.Add(config.File{
    29  				Source:      empty.Name(),
    30  				Destination: "empty.txt",
    31  			}))
    32  			require.Error(t, archive.Add(config.File{
    33  				Source:      empty.Name() + "_nope",
    34  				Destination: "dont.txt",
    35  			}))
    36  		})
    37  	}
    38  }