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 }