mirror of
https://github.com/vee1e/runtimeclass-debugger.git
synced 2026-09-01 18:27:58 +00:00
87 lines
2.1 KiB
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")
|
|
}
|
|
}
|