Neale Pickett
·
2020-10-12
mothball_test.go
1package transpile
2
3import (
4 "archive/zip"
5 "bytes"
6 "io/ioutil"
7 "os"
8 "path"
9 "runtime"
10 "testing"
11
12 "github.com/spf13/afero"
13 "github.com/spf13/afero/zipfs"
14)
15
16func TestMothballsMemFs(t *testing.T) {
17 static := NewFsCategory(newTestFs(), "cat1")
18 mb := new(bytes.Buffer)
19 if err := Mothball(static, mb); err != nil {
20 t.Error(err)
21 }
22}
23
24func TestMothballsOsFs(t *testing.T) {
25 _, testfn, _, _ := runtime.Caller(0)
26 os.Chdir(path.Dir(testfn))
27
28 fs := NewRecursiveBasePathFs(afero.NewOsFs(), "testdata")
29 static := NewFsCategory(fs, "static")
30 mb := new(bytes.Buffer)
31 err := Mothball(static, mb)
32 if err != nil {
33 t.Error(err)
34 return
35 }
36
37 mbReader := bytes.NewReader(mb.Bytes())
38 mbr, err := zip.NewReader(mbReader, int64(mb.Len()))
39 if err != nil {
40 t.Error(err)
41 }
42 zfs := zipfs.New(mbr)
43
44 if f, err := zfs.Open("puzzles.txt"); err != nil {
45 t.Error(err)
46 } else {
47 defer f.Close()
48 if buf, err := ioutil.ReadAll(f); err != nil {
49 t.Error(err)
50 } else if string(buf) != "1\n2\n3\n" {
51 t.Error("Bad puzzles.txt", string(buf))
52 }
53 }
54}