github.com/triarius/goreleaser@v1.12.5/internal/testlib/path_test.go (about) 1 package testlib 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestCheckPath(t *testing.T) { 11 requireSkipped := func(tb testing.TB, skipped bool) { 12 tb.Helper() 13 t.Cleanup(func() { 14 require.Equalf(tb, skipped, tb.Skipped(), "expected skipped to be %v", skipped) 15 }) 16 } 17 18 setupEnv := func(tb testing.TB, value string) { 19 tb.Helper() 20 previous := os.Getenv("CI") 21 require.NoError(tb, os.Setenv("CI", value)) 22 tb.Cleanup(func() { 23 require.NoError(tb, os.Setenv("CI", previous)) 24 }) 25 } 26 27 t.Run("local", func(t *testing.T) { 28 setupEnv(t, "false") 29 30 t.Run("in path", func(t *testing.T) { 31 requireSkipped(t, false) 32 CheckPath(t, "echo") 33 }) 34 35 t.Run("not in path", func(t *testing.T) { 36 requireSkipped(t, true) 37 CheckPath(t, "do-not-exist") 38 }) 39 }) 40 41 t.Run("CI", func(t *testing.T) { 42 setupEnv(t, "true") 43 44 t.Run("in path on CI", func(t *testing.T) { 45 requireSkipped(t, false) 46 CheckPath(t, "echo") 47 }) 48 49 t.Run("not in path on CI", func(t *testing.T) { 50 requireSkipped(t, false) 51 CheckPath(t, "do-not-exist") 52 }) 53 }) 54 }