ollie/env/env_test.go

57 lines
1.2 KiB
Go

package env
import (
"os"
"strings"
"testing"
)
func TestEnsureDefaults(t *testing.T) {
// EnsureDefaults now only loads the env file; no OLLIE_* vars are set.
EnsureDefaults()
}
func TestSetGet(t *testing.T) {
t.Setenv("OLLIE_TEST_VAR", "")
Set("OLLIE_TEST_VAR", "hello")
if got := Get("OLLIE_TEST_VAR"); got != "hello" {
t.Errorf("Get = %q, want %q", got, "hello")
}
}
func TestAll(t *testing.T) {
t.Setenv("OLLIE_TEST_ALL", "val")
m := All()
if m["OLLIE_TEST_ALL"] != "val" {
t.Errorf("All() missing OLLIE_TEST_ALL")
}
}
func TestFormat(t *testing.T) {
// managed is empty; Format() should return empty output.
out := string(Format())
if out != "" {
// Every line should be NAME=VALUE\n
for _, line := range strings.Split(strings.TrimRight(out, "\n"), "\n") {
if line == "" {
continue
}
if !strings.Contains(line, "=") {
t.Errorf("malformed line: %q", line)
}
}
}
}
func TestLoadFile(t *testing.T) {
dir := t.TempDir()
f := dir + "/env"
os.WriteFile(f, []byte("OLLIE_TEST_LOAD=testval\n"), 0600)
t.Setenv("OLLIE_TEST_LOAD", "")
os.Unsetenv("OLLIE_TEST_LOAD")
LoadFile(f)
if got := os.Getenv("OLLIE_TEST_LOAD"); got != "testval" {
t.Errorf("LoadFile: OLLIE_TEST_LOAD = %q, want testval", got)
}
}