Files
browser/platform/validator/observability_test.go
T

24 lines
1.1 KiB
Go

package validator
import (
"strings"
"testing"
"time"
"browser.local/platform/domain"
)
func TestObservabilityValidatorsBoundMetricsBackupsAndRemoteTargets(t *testing.T) {
if err := ValidateMetricSample(domain.MetricSample{ID: "metric-1", ServerInstanceID: "server-1", Source: "run", CollectedAt: time.Now(), CPUPercent: floatPtr(-1)}); err == nil {
t.Fatal("expected negative metric rejection")
}
if err := ValidateBackupRecord(domain.BackupRecord{ID: "backup-1", ServerInstanceID: "server-1", ArtifactID: "artifact-1", SizeBytes: 1, Checksum: "sha256:" + strings.Repeat("0", 64), State: domain.BackupStateAvailable, RecoveryStatus: strings.Repeat("x", 257)}); err == nil {
t.Fatal("expected oversized recovery status rejection")
}
if err := ValidateRemoteAdapterRequest(domain.RemoteAdapterRequest{ServerInstanceID: "server-1", DeclarationKey: "ftp", TargetKey: "tcp://host", Capability: "remote.ftp.read", IdempotencyKey: "request-1"}); err == nil {
t.Fatal("expected unsafe remote target rejection")
}
}
func floatPtr(value float64) *float64 { return &value }