github.phpd.cn/thought-machine/please@v12.2.0+incompatible/src/core/build_env_test.go (about)

     1  package core
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestExpandHomePath(t *testing.T) {
    11  	HOME := os.Getenv("HOME")
    12  	cases := []struct {
    13  		in, want string
    14  	}{
    15  		{"", ""},
    16  		{"~", HOME},
    17  		{"~username", "~username"},
    18  		{"~:/bin/~:/usr/local", HOME + ":/bin/~:/usr/local"},
    19  		{"/bin:~/bin:~/script:/usr/local/bin",
    20  			"/bin:" + HOME + "/bin:" + HOME + "/script:/usr/local/bin"},
    21  	}
    22  	for _, c := range cases {
    23  		assert.Equal(t, c.want, ExpandHomePath(c.in))
    24  	}
    25  }
    26  
    27  func TestReplaceEnvironment(t *testing.T) {
    28  	env := BuildEnv{
    29  		"TMP_DIR=/home/user/please/src/core",
    30  		"PKG=src/core",
    31  		"SRCS=core.go build_env.go",
    32  	}
    33  	assert.Equal(t,
    34  		"/home/user/please/src/core src/core core.go build_env.go",
    35  		os.Expand("$TMP_DIR ${PKG} ${SRCS}", env.ReplaceEnvironment))
    36  	assert.Equal(t, "", os.Expand("$WIBBLE", env.ReplaceEnvironment))
    37  }
    38  
    39  func TestRedact(t *testing.T) {
    40  	env := BuildEnv{
    41  		"WHATEVER=12345",
    42  		"GPG_PASSWORD=54321",
    43  		"ULTIMATE_MEGASECRET=42",
    44  	}
    45  	expected := BuildEnv{
    46  		"WHATEVER=12345",
    47  		"GPG_PASSWORD=************",
    48  		"ULTIMATE_MEGASECRET=************",
    49  	}
    50  	assert.EqualValues(t, expected, env.Redacted())
    51  }
    52  
    53  func TestString(t *testing.T) {
    54  	env := BuildEnv{
    55  		"A=B",
    56  		"C=D",
    57  	}
    58  	assert.EqualValues(t, "A=B\nC=D", env.String())
    59  }