pkger/parser/parser_test.go

123 lines
2.2 KiB
Go
Raw Normal View History

2019-11-05 23:04:38 +03:00
package parser
2019-08-01 19:03:12 +03:00
import (
2019-11-21 16:07:00 +03:00
"fmt"
2019-11-01 00:20:15 +03:00
"os"
2019-11-05 19:52:13 +03:00
"os/exec"
2019-10-23 20:19:39 +03:00
"path/filepath"
2019-11-01 22:53:54 +03:00
"strings"
2019-08-01 19:03:12 +03:00
"testing"
2019-12-03 23:07:51 +03:00
"github.com/gobuffalo/here"
2019-11-01 23:08:10 +03:00
"github.com/markbates/pkger/pkging/pkgtest"
2019-11-01 00:20:15 +03:00
"github.com/markbates/pkger/pkging/stdos"
2019-08-01 19:03:12 +03:00
"github.com/stretchr/testify/require"
)
func Test_Parser_Ref(t *testing.T) {
2019-11-05 19:52:13 +03:00
defer func() {
c := exec.Command("go", "mod", "tidy", "-v")
c.Run()
}()
r := require.New(t)
2019-11-01 23:08:10 +03:00
ref, err := pkgtest.NewRef()
r.NoError(err)
2019-11-01 00:20:15 +03:00
defer os.RemoveAll(ref.Dir)
disk, err := stdos.New(ref.Info)
r.NoError(err)
2019-11-01 23:08:10 +03:00
_, err = pkgtest.LoadFiles("/", ref, disk)
2019-11-01 00:20:15 +03:00
r.NoError(err)
2019-11-05 23:04:38 +03:00
res, err := Parse(ref.Info)
r.NoError(err)
files, err := res.Files()
r.NoError(err)
2019-11-21 16:07:00 +03:00
for _, f := range files {
fmt.Println(f.Path)
}
r.Len(files, 25)
}
func Test_Parser_Ref_Include(t *testing.T) {
defer func() {
c := exec.Command("go", "mod", "tidy", "-v")
c.Run()
}()
r := require.New(t)
ref, err := pkgtest.NewRef()
r.NoError(err)
defer os.RemoveAll(ref.Dir)
disk, err := stdos.New(ref.Info)
r.NoError(err)
_, err = pkgtest.LoadFiles("/", ref, disk)
r.NoError(err)
2019-11-21 17:02:05 +03:00
res, err := Parse(ref.Info, "github.com/stretchr/testify:/go.mod")
r.NoError(err)
files, err := res.Files()
r.NoError(err)
l := len(files)
r.Equal(26, l)
}
func Test_Parser_dotGo_Directory(t *testing.T) {
r := require.New(t)
ref, err := pkgtest.NewRef()
r.NoError(err)
defer os.RemoveAll(ref.Dir)
err = os.Mkdir(filepath.Join(ref.Dir, ".go"), 0755)
r.NoError(err)
disk, err := stdos.New(ref.Info)
r.NoError(err)
_, err = pkgtest.LoadFiles("/", ref, disk)
r.NoError(err)
res, err := Parse(ref.Info)
r.NoError(err)
r.Equal(11, len(res))
}
2019-11-01 22:53:54 +03:00
func Test_Parser_Example_HTTP(t *testing.T) {
2019-10-15 23:40:45 +03:00
r := require.New(t)
cur, err := here.Package("github.com/markbates/pkger")
2019-10-15 23:40:45 +03:00
r.NoError(err)
2019-11-01 22:53:54 +03:00
root := filepath.Join(cur.Dir, "examples", "http", "pkger")
2019-11-05 19:52:13 +03:00
defer func() {
c := exec.Command("go", "mod", "tidy", "-v")
c.Run()
}()
2019-10-23 20:19:39 +03:00
her, err := here.Dir(root)
2019-10-23 20:19:39 +03:00
r.NoError(err)
2019-11-05 23:04:38 +03:00
res, err := Parse(her)
2019-10-23 20:19:39 +03:00
r.NoError(err)
files, err := res.Files()
r.NoError(err)
2019-11-01 22:53:54 +03:00
r.Len(files, 5)
2019-10-23 20:19:39 +03:00
2019-11-01 22:53:54 +03:00
for _, f := range files {
r.True(strings.HasPrefix(f.Abs, her.Dir), "%q %q", f.Abs, her.Dir)
r.True(strings.HasPrefix(f.Path.Name, "/public"), "%q %q", f.Path.Name, "/public")
2019-10-23 20:19:39 +03:00
}
}