diff options
Diffstat (limited to 'plumbing/format/gitignore/dir_test.go')
-rw-r--r-- | plumbing/format/gitignore/dir_test.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/plumbing/format/gitignore/dir_test.go b/plumbing/format/gitignore/dir_test.go new file mode 100644 index 0000000..61f3fc0 --- /dev/null +++ b/plumbing/format/gitignore/dir_test.go @@ -0,0 +1,41 @@ +package gitignore + +import ( + "os" + "testing" + + "gopkg.in/src-d/go-billy.v2" + "gopkg.in/src-d/go-billy.v2/memfs" +) + +func setupTestFS(subdirError bool) billy.Filesystem { + fs := memfs.New() + f, _ := fs.Create(".gitignore") + f.Write([]byte("vendor/g*/\n")) + f.Close() + fs.MkdirAll("vendor", os.ModePerm) + f, _ = fs.Create("vendor/.gitignore") + f.Write([]byte("!github.com/\n")) + f.Close() + fs.MkdirAll("another", os.ModePerm) + fs.MkdirAll("vendor/github.com", os.ModePerm) + fs.MkdirAll("vendor/gopkg.in", os.ModePerm) + return fs +} + +func TestDir_ReadPatterns(t *testing.T) { + ps, err := ReadPatterns(setupTestFS(false), nil) + if err != nil { + t.Errorf("no error expected, found %v", err) + } + if len(ps) != 2 { + t.Errorf("expected 2 patterns, found %v", len(ps)) + } + m := NewMatcher(ps) + if !m.Match([]string{"vendor", "gopkg.in"}, true) { + t.Error("expected a match") + } + if m.Match([]string{"vendor", "github.com"}, true) { + t.Error("expected no match") + } +} |