github.com/oalders/ppath@v0.1.1/audit/audit_test.go (about) 1 package audit 2 3 import ( 4 "os" 5 "path" 6 "runtime" 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func init() { 13 _, filename, _, _ := runtime.Caller(0) 14 dir := path.Join(path.Dir(filename), "..") 15 if err := os.Chdir(dir); err != nil { 16 panic(err) 17 } 18 } 19 20 func TestPaths(t *testing.T) { 21 config, err := PreciousConfig("testdata/precious.toml") 22 assert.NoError(t, err) 23 success, err := Paths(config) 24 assert.NoError(t, err) 25 assert.True(t, success) 26 } 27 28 func TestPathsFailure(t *testing.T) { 29 config, err := PreciousConfig("testdata/precious-fail.toml") 30 assert.NoError(t, err) 31 success, err := Paths(config) 32 assert.NoError(t, err) 33 assert.False(t, success) 34 } 35 36 func TestPatternsOkFailure(t *testing.T) { 37 ignoreConfig, err := PpathConfig(".ppath.toml") 38 assert.NoError(t, err) 39 40 seen := make(matchCache) 41 paths := []string{"foo", "bar", "go.mod", "**/*.go"} 42 ok, err := patternsOk(seen, ignoreConfig, "golangci-lint", "include", paths) 43 assert.NoError(t, err) 44 assert.False(t, ok) 45 assert.Equal( 46 t, 47 matchCache{"bar": false, "foo": false, "go.mod": true, "**/*.go": true}, 48 seen, 49 ) 50 } 51 52 func TestPatternsOkSuccess(t *testing.T) { 53 ignoreConfig, err := PpathConfig(".ppath.toml") 54 assert.NoError(t, err) 55 56 seen := make(matchCache) 57 paths := []string{"go.mod", "**/*.go", "LICENSE-MIT"} 58 59 // Test matching and caching 60 for i := 0; i < 2; i++ { 61 ok, err := patternsOk(seen, ignoreConfig, "golangci-lint", "include", paths) 62 assert.NoError(t, err) 63 assert.True(t, ok) 64 assert.Equal( 65 t, 66 matchCache{"go.mod": true, "**/*.go": true, "LICENSE-MIT": true}, 67 seen, 68 ) 69 } 70 } 71 72 func TestPatternIgnored(t *testing.T) { 73 ignoreConfig, err := PpathConfig(".ppath.toml") 74 assert.NoError(t, err) 75 76 assert.True( 77 t, 78 patternIgnored(ignoreConfig, "omegasort-gitignore", "**/node_modules/**/*"), 79 "top level ignore", 80 ) 81 82 assert.True( 83 t, 84 patternIgnored(ignoreConfig, "omegasort-gitignore", "this-does-not-exist.txt"), 85 ) 86 87 assert.True( 88 t, 89 patternIgnored(ignoreConfig, "omegasort-gitignore", "nope*"), 90 ) 91 92 assert.False( 93 t, 94 patternIgnored(ignoreConfig, "omegasort-gitignore", "this-does-not-exist"), 95 ) 96 }