Public source validation / validate (push) Failing after 3m8s
74 lines
2.2 KiB
Go
74 lines
2.2 KiB
Go
package onboarding
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestDefaultDashboardIsEmbeddedAndMigrated(t *testing.T) {
|
|
document, err := defaultDashboard()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if document["id"] == nil || document["slug"] != DefaultSlug {
|
|
t.Fatalf("unexpected default dashboard: %#v", document)
|
|
}
|
|
if document["schemaVersion"] != 2 {
|
|
t.Fatalf("schema version=%v, want 2", document["schemaVersion"])
|
|
}
|
|
encoded, err := json.Marshal(document)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !strings.Contains(string(encoded), `"serverId":"$server"`) || strings.Contains(string(encoded), `"server":"$server"`) {
|
|
t.Fatalf("default metric scope does not use the query planner alias: %s", encoded)
|
|
}
|
|
}
|
|
|
|
func TestCompleteRejectsUnknownChoicesBeforePersistence(t *testing.T) {
|
|
service := Service{}
|
|
if _, err := service.Complete(context.Background(), Choice{Dashboard: "unsafe", Rules: "default"}); err == nil {
|
|
t.Fatal("expected invalid onboarding choice")
|
|
}
|
|
}
|
|
|
|
func TestValidChoicesAreBounded(t *testing.T) {
|
|
for _, value := range []string{"default", "skip"} {
|
|
if !validChoice(value) {
|
|
t.Fatalf("choice %q should be accepted", value)
|
|
}
|
|
}
|
|
if validChoice("install-everything") {
|
|
t.Fatal("unexpected unbounded onboarding choice")
|
|
}
|
|
}
|
|
|
|
func TestRuntimeCapabilitiesOverrideConfigurationPlaceholders(t *testing.T) {
|
|
configured := []Capability{
|
|
{ID: "database", State: "ready", Detail: "database"},
|
|
{ID: "prometheus", State: "unknown", Detail: "not configured"},
|
|
{ID: "unraid", State: "unknown", Detail: "not configured"},
|
|
}
|
|
observed := []Capability{
|
|
{ID: "prometheus", State: "ready", Detail: "runtime sampled"},
|
|
{ID: "unraid", State: "ready", Detail: "runtime sampled"},
|
|
{ID: "unexpected", State: "ready", Detail: "must stay closed"},
|
|
}
|
|
merged := mergeCapabilities(configured, observed)
|
|
if len(merged) != 3 {
|
|
t.Fatalf("merged capabilities = %#v", merged)
|
|
}
|
|
for _, capability := range merged {
|
|
if capability.ID == "prometheus" || capability.ID == "unraid" {
|
|
if capability.State != "ready" || capability.Detail != "runtime sampled" {
|
|
t.Fatalf("runtime capability not authoritative: %#v", capability)
|
|
}
|
|
}
|
|
if capability.ID == "unexpected" {
|
|
t.Fatal("runtime callback expanded the closed capability set")
|
|
}
|
|
}
|
|
}
|