Files
kleiax 904d14b64c
CI / test (push) Canceled after 0s
Initial commit
2026-09-12 22:22:17 +02:00

45 lines
1.2 KiB
Go

package environment
import (
"testing"
"time"
)
func TestParsers(t *testing.T) {
t.Setenv("TEST_INT", "42")
t.Setenv("TEST_FLOAT", "2.5")
t.Setenv("TEST_BOOL", "true")
t.Setenv("TEST_DURATION", "15m")
t.Setenv("TEST_CSV", " one, two ,,three ")
if value, err := Int("TEST_INT", 0); err != nil || value != 42 {
t.Fatalf("Int() = %d, %v", value, err)
}
if value, err := Float("TEST_FLOAT", 0); err != nil || value != 2.5 {
t.Fatalf("Float() = %f, %v", value, err)
}
if value, err := Bool("TEST_BOOL", false); err != nil || !value {
t.Fatalf("Bool() = %t, %v", value, err)
}
if value, err := Duration("TEST_DURATION", 0); err != nil || value != 15*time.Minute {
t.Fatalf("Duration() = %s, %v", value, err)
}
values := CSV("TEST_CSV")
if len(values) != 3 || values[1] != "two" {
t.Fatalf("CSV() = %#v", values)
}
}
func TestInvalidValues(t *testing.T) {
t.Setenv("TEST_VALUE", "not-valid")
if _, err := Int("TEST_VALUE", 0); err == nil {
t.Fatal("Int() did not return an error")
}
if _, err := Bool("TEST_VALUE", false); err == nil {
t.Fatal("Bool() did not return an error")
}
if _, err := Duration("TEST_VALUE", 0); err == nil {
t.Fatal("Duration() did not return an error")
}
}