github.com/szkiba/xk6-dotenv@v0.2.0/dotenv_internal_test.go (about) 1 package dotenv 2 3 import ( 4 "log" 5 "os" 6 "testing" 7 8 "github.com/stretchr/testify/require" 9 ) 10 11 const k6env = "K6_ENV" 12 13 //nolint:forbidigo 14 func TestMain(m *testing.M) { 15 if err := os.Chdir("testdata"); err != nil { 16 log.Fatal(err) 17 } 18 19 os.Exit(m.Run()) 20 } 21 22 //nolint:forbidigo 23 func unset(t *testing.T) { 24 t.Helper() 25 26 require.Nil(t, os.Unsetenv("global")) 27 require.Nil(t, os.Unsetenv("common")) 28 require.Nil(t, os.Unsetenv("local")) 29 require.Nil(t, os.Unsetenv("localonly")) 30 } 31 32 //nolint:forbidigo 33 func Test_default(t *testing.T) { //nolint:paralleltest 34 t.Setenv(k6env, "") 35 unset(t) 36 load() 37 38 require.Equal(t, ".env", os.Getenv("global")) 39 require.Equal(t, ".env.development", os.Getenv("common")) 40 require.Equal(t, ".env.development.local", os.Getenv("local")) 41 require.Equal(t, ".env.local", os.Getenv("localonly")) 42 } 43 44 //nolint:forbidigo 45 func Test_disabled(t *testing.T) { //nolint:paralleltest 46 t.Setenv(k6env, "false") 47 unset(t) 48 load() 49 50 require.Empty(t, os.Getenv("global")) 51 require.Empty(t, os.Getenv("common")) 52 require.Empty(t, os.Getenv("local")) 53 require.Empty(t, os.Getenv("localonly")) 54 } 55 56 //nolint:forbidigo 57 func Test_test(t *testing.T) { //nolint:paralleltest 58 t.Setenv(k6env, "test") 59 unset(t) 60 load() 61 62 require.Equal(t, ".env", os.Getenv("global")) 63 require.Equal(t, ".env.test", os.Getenv("common")) 64 require.Equal(t, ".env.test.local", os.Getenv("local")) 65 require.Empty(t, os.Getenv("localonly")) 66 } 67 68 //nolint:forbidigo 69 func Test_production(t *testing.T) { //nolint:paralleltest 70 t.Setenv(k6env, "production") 71 unset(t) 72 load() 73 74 require.Equal(t, ".env", os.Getenv("global")) 75 require.Equal(t, ".env.production", os.Getenv("common")) 76 require.Equal(t, ".env.production.local", os.Getenv("local")) 77 require.Equal(t, ".env.local", os.Getenv("localonly")) 78 } 79 80 //nolint:forbidigo 81 func Test_development(t *testing.T) { //nolint:paralleltest 82 t.Setenv(k6env, "development") 83 unset(t) 84 load() 85 86 require.Equal(t, ".env", os.Getenv("global")) 87 require.Equal(t, ".env.development", os.Getenv("common")) 88 require.Equal(t, ".env.development.local", os.Getenv("local")) 89 require.Equal(t, ".env.local", os.Getenv("localonly")) 90 }