Files
Assistant/tests/cognitive_canary/promotion_test.go
2026-08-17 10:21:30 +03:00

34 lines
2.9 KiB
Go

package cognitive_canary_test
import (
"testing"
"git.cin.su/m/Assistant/contracts/capability"
capabilitydomain "git.cin.su/m/Assistant/modules/capability/domain"
)
func TestSupportedExactRevisionPromotesToCanary(t *testing.T) {
quality, critical := int64(1000), int64(0)
current := capability.ResolvedCognitiveBinding{
Binding: capability.CognitiveBinding{ID: "binding-1", Revision: 11, CapabilityID: "creator-advisory", OwnerPrincipalID: "creator", ProviderInstanceID: "provider-1", ProviderRevision: 12, ModelDescriptorID: "model-1", ModelRevision: 13, DataPolicy: capability.DataPolicyLocalOnly, Qualification: capability.QualificationDiscovered, Activation: capability.ActivationInactive, Health: capability.HealthUnknown, LimitPolicyRef: "limits"},
Provider: capability.ProviderInstance{ID: "provider-1", Revision: 12, Kind: "local", EndpointRef: "endpoint", Enabled: true, Qualification: capability.QualificationDiscovered, Health: capability.HealthAvailable, ObservedAtUnixMillis: 1},
Model: capability.ModelDescriptor{ID: "model-1", Revision: 13, ProviderInstanceID: "provider-1", ProviderModelID: "snapshot", Fingerprint: "digest", MaxContextBytes: 4096, Modalities: []capability.ModelModality{capability.ModalityText}, Capabilities: []capability.ModelCapability{capability.CapabilityAdvisory}, Qualification: capability.QualificationDiscovered, Health: capability.HealthAvailable, ObservedAtUnixMillis: 1},
Evaluation: &capability.EvaluatedCapability{ID: "eval-1", BindingID: "binding-1", BindingRevision: 11, CapabilityID: "creator-advisory", Result: capability.EvaluationSupported, QualityScoreMillis: &quality, CriticalFailureMillis: &critical, BenchmarkVersion: "v1", ArtifactID: "artifact-1", ObservedAtUnixMillis: 1},
}
request := capability.CognitiveCanaryPromotionRequest{PromotionID: "promotion-1", RequestedByPrincipalID: "creator", CapabilityID: "creator-advisory", BindingID: "binding-1", ExpectedBindingRevision: 11, ProviderInstanceID: "provider-1", ExpectedProviderRevision: 12, ModelDescriptorID: "model-1", ExpectedModelRevision: 13, EvaluationID: "eval-1", ObservedAtUnixMillis: 2}
promotion, err := capabilitydomain.BuildCanaryPromotion(request, current)
if err != nil {
t.Fatal(err)
}
if promotion.Binding.Activation != capability.ActivationCanary || promotion.Binding.Qualification != capability.QualificationValidated || promotion.Provider.Qualification != capability.QualificationValidated || promotion.Model.Qualification != capability.QualificationValidated {
t.Fatalf("invalid promotion: %+v", promotion)
}
if promotion.Binding.Revision == current.Binding.Revision || promotion.Evaluation.BindingRevision != promotion.Binding.Revision {
t.Fatal("promotion is not append-only and evidence-bound")
}
current.Evaluation.Result = capability.EvaluationUnsupported
if _, err = capabilitydomain.BuildCanaryPromotion(request, current); err == nil {
t.Fatal("unsupported evaluation promoted")
}
}