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  }