github.com/franciscocpg/up@v0.1.10/internal/zip/zip_test.go (about)

     1  package zip
     2  
     3  import (
     4  	"io"
     5  	"io/ioutil"
     6  	"os"
     7  	"os/exec"
     8  	"path/filepath"
     9  	"sort"
    10  	"testing"
    11  
    12  	"github.com/tj/assert"
    13  )
    14  
    15  // TODO: better tests
    16  
    17  func TestBuild(t *testing.T) {
    18  	os.Chdir("testdata")
    19  	defer os.Chdir("..")
    20  
    21  	zip, _, err := Build(".")
    22  	assert.NoError(t, err)
    23  
    24  	out, err := ioutil.TempDir(os.TempDir(), "-up")
    25  	assert.NoError(t, err, "tmpdir")
    26  	dst := filepath.Join(out, "out.zip")
    27  
    28  	f, err := os.Create(dst)
    29  	assert.NoError(t, err, "create")
    30  
    31  	_, err = io.Copy(f, zip)
    32  	assert.NoError(t, err, "copy")
    33  
    34  	assert.NoError(t, f.Close(), "close")
    35  
    36  	cmd := exec.Command("unzip", "out.zip")
    37  	cmd.Dir = out
    38  	assert.NoError(t, cmd.Run(), "unzip")
    39  
    40  	files, err := ioutil.ReadDir(out)
    41  	assert.NoError(t, err, "readdir")
    42  
    43  	var names []string
    44  	for _, f := range files {
    45  		names = append(names, f.Name())
    46  	}
    47  	sort.Strings(names)
    48  
    49  	assert.Equal(t, []string{".upignore", "bar.js", "foo.js", "index.js", "out.zip"}, names)
    50  }