package main import "testing" func TestCandidateReleaseContextRequiresDeploymentMetadata(t *testing.T) { t.Setenv("CANDIDATE_RELEASE_SET_ID", "assistant-slot-b") if _, err := candidateReleaseContextFromRuntime(); err == nil { t.Fatal("partial candidate metadata was accepted") } t.Setenv("CANDIDATE_SLOT", "b") t.Setenv("CANDIDATE_TASK_ID", "GEN2-CAPABILITY-001") t.Setenv("CANDIDATE_TASK_REVISION", "7") t.Setenv("CANDIDATE_PRINCIPAL_ID", "domovoy-creator-principal") t.Setenv("CANDIDATE_CAPABILITY_ID", "prospective-notification-delivery") t.Setenv("CANDIDATE_RESOURCE_SCOPE", "synthetic-shadow-notification-v1") t.Setenv("CANDIDATE_BINDING_MODE", "SHADOW") t.Setenv("CANDIDATE_TARGET_KIND", "NOTIFICATION_SHADOW_RECEIVER") t.Setenv("CANDIDATE_TARGET_REF", "notification-receiver-candidate") t.Setenv("CANDIDATE_TARGET_DIGEST", "f9f9fa49a0727444c280c092d5bb340f3a8f33cf325c5396f5ae177a6666da35") t.Setenv("CANDIDATE_AUTHORITY_GRANT_ID", "grant") context, err := candidateReleaseContextFromRuntime() if err != nil || context.ReleaseSetID != "assistant-slot-b" || context.TaskRevision != 7 { t.Fatalf("context=%+v err=%v", context, err) } }