github.com/bingoohuang/pkger@v0.0.0-20210127185155-a71b9df4c4c7/pkging/pkgutil/stuff_test.go (about)

     1  package pkgutil
     2  
     3  import (
     4  	"bytes"
     5  	"os"
     6  	"testing"
     7  
     8  	"github.com/bingoohuang/pkger/parser"
     9  	"github.com/bingoohuang/pkger/pkging/mem"
    10  	"github.com/bingoohuang/pkger/pkging/pkgtest"
    11  	"github.com/bingoohuang/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  }