github.com/AlpineAIO/wails/v2@v2.0.0-beta.32.0.20240505041856-1047a8fa5fef/internal/shell/env_test.go (about) 1 package shell 2 3 import "testing" 4 5 func TestUpdateEnv(t *testing.T) { 6 7 env := []string{"one=1", "two=a=b", "three="} 8 newEnv := UpsertEnv(env, "two", func(v string) string { 9 return v + "+added" 10 }) 11 newEnv = UpsertEnv(newEnv, "newVar", func(v string) string { 12 return "added" 13 }) 14 newEnv = UpsertEnv(newEnv, "three", func(v string) string { 15 return "3" 16 }) 17 newEnv = UpsertEnv(newEnv, "GOARCH", func(v string) string { 18 return "amd64" 19 }) 20 21 if len(newEnv) != 5 { 22 t.Errorf("expected: 5, got: %d", len(newEnv)) 23 } 24 if newEnv[1] != "two=a=b+added" { 25 t.Errorf("expected: \"two=a=b+added\", got: %q", newEnv[1]) 26 } 27 if newEnv[2] != "three=3" { 28 t.Errorf("expected: \"three=3\", got: %q", newEnv[2]) 29 } 30 if newEnv[3] != "newVar=added" { 31 t.Errorf("expected: \"newVar=added\", got: %q", newEnv[3]) 32 } 33 if newEnv[4] != "GOARCH=amd64" { 34 t.Errorf("expected: \"newVar=added\", got: %q", newEnv[4]) 35 } 36 } 37 38 func TestSetEnv(t *testing.T) { 39 env := []string{"one=1", "two=a=b", "three="} 40 newEnv := SetEnv(env, "two", "set") 41 newEnv = SetEnv(newEnv, "newVar", "added") 42 43 if len(newEnv) != 4 { 44 t.Errorf("expected: 4, got: %d", len(newEnv)) 45 } 46 if newEnv[1] != "two=set" { 47 t.Errorf("expected: \"two=set\", got: %q", newEnv[1]) 48 } 49 if newEnv[3] != "newVar=added" { 50 t.Errorf("expected: \"newVar=added\", got: %q", newEnv[3]) 51 } 52 } 53 54 func TestRemoveEnv(t *testing.T) { 55 env := []string{"one=1", "two=a=b", "three=3"} 56 newEnv := RemoveEnv(env, "two") 57 58 if len(newEnv) != 2 { 59 t.Errorf("expected: 2, got: %d", len(newEnv)) 60 } 61 if newEnv[0] != "one=1" { 62 t.Errorf("expected: \"one=1\", got: %q", newEnv[1]) 63 } 64 if newEnv[1] != "three=3" { 65 t.Errorf("expected: \"three=3\", got: %q", newEnv[3]) 66 } 67 }