You've already forked agentic-coding-workflow
43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestLoad_FromEnv(t *testing.T) {
|
|
t.Setenv("APP_ENV", "test")
|
|
t.Setenv("APP_HTTP_ADDR", ":9090")
|
|
t.Setenv("APP_DB_DSN", "postgres://test")
|
|
t.Setenv("APP_MASTER_KEY", "00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff")
|
|
t.Setenv("APP_DATA_DIR", "/tmp/acw")
|
|
t.Setenv("APP_BOOTSTRAP_ADMIN_EMAIL", "a@b.c")
|
|
t.Setenv("APP_BOOTSTRAP_ADMIN_PASSWORD", "pw12345678")
|
|
|
|
cfg, err := Load("")
|
|
require.NoError(t, err)
|
|
require.Equal(t, "test", cfg.Env)
|
|
require.Equal(t, ":9090", cfg.HTTP.Addr)
|
|
require.Equal(t, "postgres://test", cfg.DB.DSN)
|
|
require.Len(t, cfg.MasterKey, 32) // hex decoded → 32 bytes
|
|
require.Equal(t, "/tmp/acw", cfg.DataDir)
|
|
require.Equal(t, "a@b.c", cfg.Bootstrap.AdminEmail)
|
|
}
|
|
|
|
func TestLoad_MissingMasterKey(t *testing.T) {
|
|
os.Clearenv()
|
|
t.Setenv("APP_DB_DSN", "x")
|
|
_, err := Load("")
|
|
require.Error(t, err)
|
|
require.Contains(t, err.Error(), "MASTER_KEY")
|
|
}
|
|
|
|
func TestLoad_MasterKeyWrongLength(t *testing.T) {
|
|
t.Setenv("APP_MASTER_KEY", "deadbeef") // too short
|
|
t.Setenv("APP_DB_DSN", "x")
|
|
_, err := Load("")
|
|
require.Error(t, err)
|
|
}
|