package pkgtest import ( "io/ioutil" "net/http" "net/http/httptest" "path/filepath" "strings" "testing" "github.com/markbates/pkger/pkging/pkgutil" "github.com/stretchr/testify/require" ) // examples/app // ├── Dockerfile // ├── Makefile // ├── go.mod // ├── go.sum // ├── main.go // ├── public // │   ├── images // │   │   ├── mark-small.png // │   │   ├── mark.png // │   │   ├── mark_250px.png // │   │   └── mark_400px.png // │   └── index.html // └── templates // ├── a.txt // └── b // └── b.txt func (s Suite) LoadFolder() error { files := []string{ "/main.go", "/public/images/mark.png", "/public/index.html", "/templates/a.txt", "/templates/b/b.txt", } for _, f := range files { if err := s.MkdirAll(filepath.Dir(f), 0755); err != nil { return err } if err := pkgutil.WriteFile(s, f, []byte("!"+f), 0644); err != nil { return err } } return nil } func (s Suite) Test_HTTP_Dir(t *testing.T) { r := require.New(t) cur, err := s.Current() r.NoError(err) ip := cur.ImportPath r.NoError(s.LoadFolder()) table := []struct { in string req string exp string }{ {in: "/", req: "/", exp: `>/public//public//public//mark.png`) // r.NotContains(string(b), `/public`) // r.NotContains(string(b), `/images`) // r.NotContains(string(b), `/go.mod`) // }