test(work-graph): lock task evaluation wire contract #226
@@ -0,0 +1,25 @@
|
||||
package domain
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"git.cin.su/m/Assistant/contracts/work"
|
||||
)
|
||||
|
||||
func TestTaskEvaluationGraphAcceptsWirePayloadShape(t *testing.T) {
|
||||
payload := []byte(`{"plan":{"graph_id":"graph-wire","profile":{"ID":"profile-wire","Revision":1,"CapabilityID":"creator-advisory","Stage":"GENERAL","BenchmarkVersion":"live-general-v1","RequiredCaseIDs":["case-ok"],"QualityWeightMillis":600,"ReliabilityWeightMillis":300,"LatencyWeightMillis":100},"binding_ids":["binding-wire"],"dispatch_ids":["dispatch-wire"],"idempotency_prefix":"idem-wire","budget":{"max_parallel":1,"max_attempts":1},"cases":[{"CaseID":"case-ok","Prompt":"Reply with exactly OK","EvidenceArtifactRef":"artifact-wire","Verification":{"Mode":"EXACT_TEXT","ExpectedText":"OK","MinimumQualityMillis":1000}}],"binding_revision":2126816167056902612,"actor_id":"domovoy-creator-actor","principal_id":"domovoy-creator-principal","scope_id":"domovoy-creator-scope"},"intents":[{"dispatch_id":"dispatch-wire","idempotency_key":"idem-wire-1234567890","delegation_id":"delegation-wire","run_id":"run-wire","implementation_id":"task-evaluator","implementation_revision":1,"source_revision":"live-quality-smoke","worktree_id":"qualification-live","verification_plan_ref":"verify-wire","created_at_unix_millis":1787500000000}]}`)
|
||||
var request struct {
|
||||
Plan work.TaskEvaluationGraphRequest `json:"Plan"`
|
||||
Intents []work.AgentDispatchIntent `json:"Intents"`
|
||||
}
|
||||
if err := json.Unmarshal(payload, &request); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if request.Plan.GraphID == "" || request.Plan.Profile.ID == "" || len(request.Plan.BindingIDs) != 1 || len(request.Intents) != 1 {
|
||||
t.Fatalf("wire payload lost fields: %+v intents=%+v", request.Plan, request.Intents)
|
||||
}
|
||||
if _, err := BuildTaskEvaluationGraph(request.Plan); err != nil {
|
||||
t.Fatalf("wire payload was rejected: %v request=%+v", err, request.Plan)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user