Files
Assistant/tests/cognitive_fake/deterministic_test.go
2026-08-16 15:22:49 +03:00

25 lines
1.1 KiB
Go

package cognitive_fake_test
import (
"testing"
"git.cin.su/m/Assistant/adapters/models"
"git.cin.su/m/Assistant/contracts/authority"
"git.cin.su/m/Assistant/contracts/capability"
commitcontract "git.cin.su/m/Assistant/contracts/commit"
"git.cin.su/m/Assistant/contracts/identity"
"git.cin.su/m/Assistant/contracts/work"
"git.cin.su/m/Assistant/platform/ids"
)
func TestDeterministicFakeEmitsCandidateOnly(t *testing.T) {
request := models.DeterministicRequest{ActorID: identity.ActorID(ids.ID("creator")), CapabilityID: capability.CapabilityID(ids.ID("fake")), Target: work.TaskTarget{TaskID: work.TaskID(ids.ID("task")), GoalID: work.GoalID(ids.ID("goal")), ScopeID: authority.ScopeID(ids.ID("scope")), Revision: 1}, Operation: commitcontract.ExternalOperation("test-operation")}
first, second := models.Propose(request), models.Propose(request)
if first.Proposal.IntentID != second.Proposal.IntentID || first.Seed != second.Seed {
t.Fatal("same request produced different candidate")
}
if first.Proposal.State != commitcontract.ActionProposed {
t.Fatalf("state = %s, want PROPOSED", first.Proposal.State)
}
}