github.com/falafeljan/pkger@v0.18.0/pkging/pkgutil/stuff_test.go (about) 1 package pkgutil 2 3 import ( 4 "bytes" 5 "os" 6 "testing" 7 8 "github.com/markbates/pkger/parser" 9 "github.com/markbates/pkger/pkging/mem" 10 "github.com/markbates/pkger/pkging/pkgtest" 11 "github.com/markbates/pkger/pkging/stdos" 12 "github.com/stretchr/testify/require" 13 ) 14 15 func Test_Stuff(t *testing.T) { 16 r := require.New(t) 17 18 ref, err := pkgtest.NewRef() 19 r.NoError(err) 20 defer os.RemoveAll(ref.Dir) 21 22 pwd, err := os.Getwd() 23 r.NoError(err) 24 defer os.Chdir(pwd) 25 26 os.Chdir(ref.Dir) 27 28 disk, err := stdos.New(ref.Info) 29 r.NoError(err) 30 31 infos, err := pkgtest.LoadFiles("/", ref, disk) 32 r.NoError(err) 33 r.Len(infos, 34) 34 35 decls, err := parser.Parse(ref.Info) 36 r.NoError(err) 37 38 r.Len(decls, 11) 39 40 files, err := decls.Files() 41 r.NoError(err) 42 43 for _, f := range files { 44 if f.Path.Pkg == ref.Module.Path { 45 r.Equal("app", f.Path.Pkg) 46 } else { 47 r.NotEqual("app", f.Path.Pkg) 48 } 49 } 50 51 r.Len(files, 25) 52 53 bb := &bytes.Buffer{} 54 55 err = Stuff(bb, ref.Info, decls) 56 r.NoError(err) 57 58 pkg, err := mem.UnmarshalEmbed(bb.Bytes()) 59 r.NoError(err) 60 61 pkgtest.CurrentTest(t, ref, pkg) 62 pkgtest.InfoTest(t, ref, pkg) 63 pkgtest.OpenTest(t, ref, pkg) 64 pkgtest.WalkTest(t, ref, pkg) 65 66 _, err = pkg.Stat("/go.mod") 67 r.NoError(err) 68 69 _, err = pkg.Stat("/public/index.html") 70 r.NoError(err) 71 }