You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.4 KiB
Go
47 lines
1.4 KiB
Go
package envutil
|
|
|
|
// env_test.go contains backend tests for package behavior, error paths, and regressions.
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
// TestString ensures string behavior is handled correctly.
|
|
func TestString(t *testing.T) {
|
|
t.Setenv("APP_VALUE", "configured")
|
|
require.Equal(t, "configured", String("APP_VALUE", "fallback"))
|
|
}
|
|
|
|
// TestStringFallback ensures string fallback behavior is handled correctly.
|
|
func TestStringFallback(t *testing.T) {
|
|
t.Setenv("APP_VALUE", "")
|
|
require.Equal(t, "fallback", String("APP_VALUE", "fallback"))
|
|
}
|
|
|
|
// TestInt ensures int behavior is handled correctly.
|
|
func TestInt(t *testing.T) {
|
|
t.Setenv("APP_PORT", "8080")
|
|
require.Equal(t, 8080, Int("APP_PORT", 3000))
|
|
}
|
|
|
|
// TestIntFallbackInvalid ensures int fallback invalid behavior is handled correctly.
|
|
func TestIntFallbackInvalid(t *testing.T) {
|
|
t.Setenv("APP_PORT", "oops")
|
|
require.Equal(t, 3000, Int("APP_PORT", 3000))
|
|
}
|
|
|
|
// TestDuration ensures duration behavior is handled correctly.
|
|
func TestDuration(t *testing.T) {
|
|
t.Setenv("APP_TIMEOUT", "7s")
|
|
require.Equal(t, 7*time.Second, Duration("APP_TIMEOUT", time.Second))
|
|
}
|
|
|
|
// TestDurationFallbackInvalid ensures duration fallback invalid behavior is handled correctly.
|
|
func TestDurationFallbackInvalid(t *testing.T) {
|
|
t.Setenv("APP_TIMEOUT", "oops")
|
|
require.Equal(t, 2*time.Second, Duration("APP_TIMEOUT", 2*time.Second))
|
|
}
|