41 lines
800 B
Go
41 lines
800 B
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestLoadConfig(t *testing.T) {
|
|
dir := t.TempDir()
|
|
path := filepath.Join(dir, "config.yaml")
|
|
content := `
|
|
listen: ":9090"
|
|
forgejo:
|
|
base_url: https://forgejo.test
|
|
token: abc
|
|
default_scope:
|
|
level: instance
|
|
namespace:
|
|
nsc_binary: /usr/bin/nsc
|
|
image: ghcr.io/forgejo/runner:3
|
|
duration: 15m
|
|
runner:
|
|
name_prefix: custom-
|
|
`
|
|
if err := os.WriteFile(path, []byte(content), 0o600); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
cfg, err := Load(path)
|
|
if err != nil {
|
|
t.Fatalf("Load() error = %v", err)
|
|
}
|
|
if cfg.Listen != ":9090" {
|
|
t.Fatalf("unexpected listen addr: %s", cfg.Listen)
|
|
}
|
|
if cfg.Namespace.Duration.Duration != 15*time.Minute {
|
|
t.Fatalf("duration parsing failed: %s", cfg.Namespace.Duration.Duration)
|
|
}
|
|
}
|