package config import ( "os" "testing" "github.com/nalgeon/be" "github.com/spf13/viper" ) func TestNew(t *testing.T) { _, v, err := New(t.Context(), "") be.Err(t, err, nil) be.True(t, v != nil) } func TestNewWithEnvOverrides(t *testing.T) { os.Setenv("MYLOG_INPUT_PATH", "/test/path") defer os.Unsetenv("MYLOG_INPUT_PATH") _, v, err := New(t.Context(), "") be.Err(t, err, nil) be.Equal(t, v.GetString("input.path"), "/test/path") } func TestNewWithConfigFile(t *testing.T) { dir := t.ArtifactDir() f, _ := os.CreateTemp(dir, "test*.toml") defer os.Remove(f.Name()) f.WriteString(`[input] path = "/file/path" ext = "log"`) f.Close() _, v, err := New(t.Context(), f.Name()) be.Err(t, err, nil) be.Err(t, err, nil) be.Equal(t, v.GetString("input.path"), "/file/path") be.Equal(t, v.GetString("input.ext"), "log") } func TestRetrieveFromContext(t *testing.T) { v := viper.New() ctx := AddToContext(t.Context(), v) result, _ := RetrieveFromContext(ctx) be.True(t, v == result) }