Add internal/kctl and internal/config packages with unit tests

This commit is contained in:
Stefan Koelle
2026-08-09 11:21:47 +02:00
parent 2dae206ec4
commit dc8bcc555f
6 changed files with 253 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
package config
import (
"os"
"path/filepath"
"testing"
)
func TestLoad_MissingFileReturnsDefaults(t *testing.T) {
cfg, err := Load(filepath.Join(t.TempDir(), "does-not-exist.yaml"))
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if len(cfg.ContextPairs) != 0 {
t.Fatalf("expected no context pairs, got %v", cfg.ContextPairs)
}
if cfg.TeamLabelKey != "" {
t.Fatalf("expected empty team label key, got %q", cfg.TeamLabelKey)
}
}
func TestLoad_ValidFile(t *testing.T) {
content := []byte(`
context_pairs:
- name: "env-pair-1"
contexts: ["ctx-a", "ctx-b"]
team_label_key: "example.org/team"
`)
path := filepath.Join(t.TempDir(), "config.yaml")
if err := os.WriteFile(path, content, 0o600); err != nil {
t.Fatalf("failed to write test config: %v", err)
}
cfg, err := Load(path)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if cfg.TeamLabelKey != "example.org/team" {
t.Fatalf("unexpected team label key: %q", cfg.TeamLabelKey)
}
if len(cfg.ContextPairs) != 1 || cfg.ContextPairs[0].Name != "env-pair-1" {
t.Fatalf("unexpected context pairs: %v", cfg.ContextPairs)
}
}