24 lines
1.1 KiB
Go
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 }
|