Files
bc-netts-energy/internal/config/config_test.go
2025-11-03 19:26:48 +08:00

54 lines
1.2 KiB
Go

package config
import (
"os"
"path/filepath"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestLoadDefaultsWithEnv(t *testing.T) {
t.Setenv("NETTS_API_KEY", "env-key")
cfg, err := Load("")
require.NoError(t, err)
assert.Equal(t, ":8080", cfg.Server.Address)
assert.Equal(t, "https://netts.io", cfg.Netts.BaseURL)
assert.Equal(t, 3, cfg.Energy.MinCycles)
assert.Equal(t, 10, cfg.Energy.TargetCycles)
assert.Equal(t, "env-key", cfg.Netts.APIKey)
}
func TestLoadFromFileOverridesDefaults(t *testing.T) {
dir := t.TempDir()
file := filepath.Join(dir, "config.yaml")
body := `
server:
address: ":9090"
readTimeout: 5s
netts:
apiKey: "file-key"
baseUrl: "https://example.com"
energy:
minCycles: 5
targetCycles: 8
logging:
level: debug
`
require.NoError(t, os.WriteFile(file, []byte(body), 0o600))
cfg, err := Load(file)
require.NoError(t, err)
assert.Equal(t, ":9090", cfg.Server.Address)
assert.Equal(t, "https://example.com", cfg.Netts.BaseURL)
assert.Equal(t, 5, cfg.Energy.MinCycles)
assert.Equal(t, 8, cfg.Energy.TargetCycles)
assert.Equal(t, "file-key", cfg.Netts.APIKey)
assert.Equal(t, "debug", cfg.Logging.Level)
}