runtimeclass-debugger/pkg/config/edgecore_test.go

87 lines
2.1 KiB
Go

package config
import (
"errors"
"os"
"path/filepath"
"testing"
)
const edgecoreWithReportEventTrue = `apiVersion: edgecore.config.kube.io/v1alpha2
kind: EdgeCore
edged:
reportEvent: true
nodeStatusUpdateFrequency: 10
`
const edgecoreWithReportEventFalse = `apiVersion: edgecore.config.kube.io/v1alpha2
kind: EdgeCore
edged:
reportEvent: false
`
const edgecoreWithoutReportEvent = `apiVersion: edgecore.config.kube.io/v1alpha2
kind: EdgeCore
edged:
nodeStatusUpdateFrequency: 10
`
func writeFixture(t *testing.T, content string) string {
t.Helper()
path := filepath.Join(t.TempDir(), "edgecore.yaml")
if err := os.WriteFile(path, []byte(content), 0o600); err != nil {
t.Fatal(err)
}
return path
}
func TestReportEventTrue(t *testing.T) {
report, present, err := ReportEvent(writeFixture(t, edgecoreWithReportEventTrue))
if err != nil {
t.Fatalf("ReportEvent: %v", err)
}
if !present || !report {
t.Fatalf("expected (true, true), got (%v, %v)", report, present)
}
}
func TestReportEventFalse(t *testing.T) {
report, present, err := ReportEvent(writeFixture(t, edgecoreWithReportEventFalse))
if err != nil {
t.Fatalf("ReportEvent: %v", err)
}
if !present || report {
t.Fatalf("expected (false, true), got (%v, %v)", report, present)
}
}
func TestReportEventMissing(t *testing.T) {
report, present, err := ReportEvent(writeFixture(t, edgecoreWithoutReportEvent))
if err != nil {
t.Fatalf("ReportEvent: %v", err)
}
if present || report {
t.Fatalf("expected (false, false), got (%v, %v)", report, present)
}
}
func TestReportEventMissingFile(t *testing.T) {
_, _, err := ReportEvent(filepath.Join(t.TempDir(), "does-not-exist.yaml"))
if !errors.Is(err, ErrConfigNotFound) {
t.Fatalf("expected ErrConfigNotFound, got %v", err)
}
}
func TestReportEventMalformed(t *testing.T) {
_, _, err := ReportEvent(writeFixture(t, "not: [valid"))
if err == nil {
t.Fatal("expected parse error, got nil")
}
}
func TestReportEventNonBoolean(t *testing.T) {
_, _, err := ReportEvent(writeFixture(t, "edged:\n reportEvent: \"yes\""))
if err == nil {
t.Fatal("expected type error, got nil")
}
}