45 lines
744 B
Go
45 lines
744 B
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestLoadExample(t *testing.T) {
|
|
dir := t.TempDir()
|
|
p := filepath.Join(dir, "cfg.yaml")
|
|
if err := os.WriteFile(p, []byte(`
|
|
listen: ":0"
|
|
allow_all: true
|
|
servers:
|
|
- alias: main_srv
|
|
base_url: http://127.0.0.1:9091
|
|
`), 0644); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
c, err := Load(p)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if c.Listen != ":0" {
|
|
t.Fatalf("listen: %q", c.Listen)
|
|
}
|
|
_, err = c.Parse()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestValidateDuplicateAlias(t *testing.T) {
|
|
c := &Config{
|
|
Servers: []Server{
|
|
{Alias: "a", BaseURL: "http://x:1"},
|
|
{Alias: "a", BaseURL: "http://y:2"},
|
|
},
|
|
}
|
|
if err := c.Validate(); err == nil {
|
|
t.Fatal("expected error")
|
|
}
|
|
}
|