Files
ITWorx Pulse release export bd774932d5
Public source validation / validate (push) Failing after 3m8s
Publish ITWorx Pulse source
2026-09-03 02:09:19 +02:00

33 lines
1018 B
Go

package dashboard
import "testing"
func valid() Document {
return Document{"schemaVersion": 1, "id": "00000000-0000-0000-0000-000000000001", "slug": "overview", "name": "Overview", "scope": "system", "variables": []any{}, "widgets": []any{}, "settings": map[string]any{}}
}
func TestInvalidDocumentRejected(t *testing.T) {
doc := valid()
delete(doc, "widgets")
if err := Validate(doc); err == nil {
t.Fatal("expected invalid document rejection")
}
}
func TestMigrationIsDeterministicAndPreservesCustomSettings(t *testing.T) {
doc := valid()
doc["settings"].(map[string]any)["refreshSeconds"] = 90
first, err := Migrate(doc)
if err != nil {
t.Fatal(err)
}
second, err := Migrate(doc)
if err != nil {
t.Fatal(err)
}
if first["schemaVersion"] != 2 || first["settings"].(map[string]any)["refreshSeconds"] != float64(90) {
t.Fatalf("migration overwrote custom value: %+v", first)
}
if len(first["widgets"].([]any)) != len(second["widgets"].([]any)) {
t.Fatal("migration not deterministic")
}
}