57 lines
1.2 KiB
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)
|
|
}
|
|
}
|