github.com/orteth01/up@v0.2.0/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{"bar.js", "foo.js", "index.js", "out.zip"}, names) 50 }