29 lines
1.0 KiB
Go
29 lines
1.0 KiB
Go
package creator_api_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"git.cin.su/m/Assistant/contracts/authority"
|
|
"git.cin.su/m/Assistant/contracts/identity"
|
|
"git.cin.su/m/Assistant/contracts/situation"
|
|
"git.cin.su/m/Assistant/contracts/work"
|
|
situationdomain "git.cin.su/m/Assistant/modules/situation/domain"
|
|
)
|
|
|
|
func TestCreatorTaskReadRequiresOwnFocusTarget(t *testing.T) {
|
|
session := identity.CreatorSession{ActorID: "domovoy-creator-actor", PrincipalID: "domovoy-creator-principal"}
|
|
focus := situation.FocusBinding{ActorID: session.ActorID, GoalID: "goal-a", ScopeID: "scope-a", Active: true}
|
|
allowed := work.TaskTarget{TaskID: "task-a", GoalID: focus.GoalID, ScopeID: focus.ScopeID, Revision: 2}
|
|
if focus.ActorID != session.ActorID {
|
|
t.Fatal("creator focus actor mismatch")
|
|
}
|
|
if err := situationdomain.ValidateTaskTarget(focus, allowed); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
outside := allowed
|
|
outside.ScopeID = authority.ScopeID("scope-b")
|
|
if err := situationdomain.ValidateTaskTarget(focus, outside); err == nil {
|
|
t.Fatal("out-of-focus task accepted")
|
|
}
|
|
}
|