2024-02-04 18:19:19 -06:00
|
|
|
package config
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"os"
|
|
|
|
|
"testing"
|
|
|
|
|
|
2026-02-13 14:12:30 -06:00
|
|
|
"github.com/nalgeon/be"
|
2026-03-08 22:59:33 -05:00
|
|
|
"github.com/spf13/viper"
|
2024-02-04 18:19:19 -06:00
|
|
|
)
|
|
|
|
|
|
2026-03-08 22:59:33 -05:00
|
|
|
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"
|
2024-02-04 18:19:19 -06:00
|
|
|
ext = "log"`)
|
2026-03-08 22:59:33 -05:00
|
|
|
f.Close()
|
|
|
|
|
|
|
|
|
|
_, v, err := New(t.Context())
|
2026-02-13 14:12:30 -06:00
|
|
|
be.Err(t, err, nil)
|
2024-02-04 18:19:19 -06:00
|
|
|
|
2026-03-08 22:59:33 -05:00
|
|
|
v.SetConfigFile(f.Name())
|
|
|
|
|
v.SetConfigType("toml")
|
|
|
|
|
err = v.ReadInConfig()
|
2026-02-13 14:12:30 -06:00
|
|
|
be.Err(t, err, nil)
|
2026-03-08 22:59:33 -05:00
|
|
|
be.Equal(t, v.GetString("input.path"), "/file/path")
|
|
|
|
|
be.Equal(t, v.GetString("input.ext"), "log")
|
2024-02-04 18:19:19 -06:00
|
|
|
}
|
2024-02-10 11:06:00 -06:00
|
|
|
|
2026-03-08 22:59:33 -05:00
|
|
|
func TestRetrieveFromContext(t *testing.T) {
|
|
|
|
|
v := viper.New()
|
|
|
|
|
ctx := AddToContext(t.Context(), v)
|
|
|
|
|
result, _ := RetrieveFromContext(ctx)
|
|
|
|
|
be.True(t, v == result)
|
2024-02-10 11:48:23 -06:00
|
|
|
}
|