20 lines
873 B
Go
20 lines
873 B
Go
package domain_test
|
|
|
|
import (
|
|
"git.cin.su/m/Assistant/contracts/work"
|
|
"git.cin.su/m/Assistant/modules/work/domain"
|
|
"testing"
|
|
)
|
|
|
|
func TestEvolutionRequiresIndependentEvaluatorAndRollbackEvidence(t *testing.T) {
|
|
c := work.EvolutionCandidate{ID: "c", ProposalRef: "p", ChangeLevel: work.EvolutionBehavior, CreatorIdentity: "creator", RollbackRef: "rollback", SandboxEvidenceRefs: []work.EvidenceRef{"sandbox"}, BenchmarkEvidenceRefs: []work.EvidenceRef{"benchmark"}}
|
|
e := work.EvolutionEvaluation{CandidateRef: "c", EvaluatorIdentity: "creator", Approved: true, MustNotWorsenPassed: true, EvidenceRefs: []work.EvidenceRef{"eval"}, RecordedAtUnixMillis: 1}
|
|
if domain.PromoteEvolution(c, e) {
|
|
t.Fatal("creator promoted own change")
|
|
}
|
|
e.EvaluatorIdentity = "independent"
|
|
if !domain.PromoteEvolution(c, e) {
|
|
t.Fatal("independently evaluated candidate rejected")
|
|
}
|
|
}
|