src.elv.sh@v0.21.0-dev.0.20240515223629-06979efb9a2a/pkg/testutil/temp_env_test.go (about) 1 package testutil 2 3 import ( 4 "os" 5 "testing" 6 ) 7 8 const envName = "ELVISH_TEST_ENV" 9 10 func TestSetenv_ExistingEnv(t *testing.T) { 11 os.Setenv(envName, "old value") 12 defer os.Unsetenv(envName) 13 14 c := &cleanuper{} 15 v := Setenv(c, envName, "new value") 16 17 if v != "new value" { 18 t.Errorf("did not return new value") 19 } 20 if os.Getenv(envName) != "new value" { 21 t.Errorf("did not set to new value") 22 } 23 c.runCleanups() 24 if os.Getenv(envName) != "old value" { 25 t.Errorf("did not restore to old value") 26 } 27 } 28 29 func TestSetenv_NewEnv(t *testing.T) { 30 os.Unsetenv(envName) 31 32 c := &cleanuper{} 33 v := Setenv(c, envName, "new value") 34 35 if v != "new value" { 36 t.Errorf("did not return new value") 37 } 38 if os.Getenv(envName) != "new value" { 39 t.Errorf("did not set to new value") 40 } 41 c.runCleanups() 42 if _, exists := os.LookupEnv(envName); exists { 43 t.Errorf("did not remove") 44 } 45 } 46 47 func TestUnsetenv_ExistingEnv(t *testing.T) { 48 os.Setenv(envName, "old value") 49 defer os.Unsetenv(envName) 50 51 c := &cleanuper{} 52 Unsetenv(c, envName) 53 54 if _, exists := os.LookupEnv(envName); exists { 55 t.Errorf("did not unset") 56 } 57 c.runCleanups() 58 if os.Getenv(envName) != "old value" { 59 t.Errorf("did not restore to old value") 60 } 61 } 62 63 func TestUnsetenv_NewEnv(t *testing.T) { 64 os.Unsetenv(envName) 65 66 c := &cleanuper{} 67 Unsetenv(c, envName) 68 69 if _, exists := os.LookupEnv(envName); exists { 70 t.Errorf("did not unset") 71 } 72 c.runCleanups() 73 if _, exists := os.LookupEnv(envName); exists { 74 t.Errorf("did not remove") 75 } 76 } 77 78 // SaveEnv tested as a dependency of Setenv and Unsetenv