Signal the lead when a task is created, except tasks it created
This commit is contained in:
@@ -97,7 +97,7 @@ func (e *env) addTask() api.Task {
|
||||
if err != nil {
|
||||
e.t.Fatalf("add worktree: %v", err)
|
||||
}
|
||||
err = e.store.CreateTask(e.ctx, task)
|
||||
err = e.store.CreateTask(e.ctx, task, login)
|
||||
if err != nil {
|
||||
e.t.Fatalf("create task: %v", err)
|
||||
}
|
||||
@@ -884,12 +884,13 @@ func TestStartTodo(t *testing.T) {
|
||||
gitOut(t, e.repo, "add", "TODO.md")
|
||||
gitOut(t, e.repo, "commit", "--quiet", "--message", "add todo")
|
||||
|
||||
_, err := m.StartTodo(e.ctx, e.project, e.user, "No such item", testModel)
|
||||
lead := login + " (lead)"
|
||||
_, err := m.StartTodo(e.ctx, e.project, e.user, "No such item", testModel, lead)
|
||||
if !errors.Is(err, store.ErrNotFound) {
|
||||
t.Fatalf("start unknown item: %v", err)
|
||||
}
|
||||
|
||||
task, err := m.StartTodo(e.ctx, e.project, e.user, "Create hello.txt", testModel)
|
||||
task, err := m.StartTodo(e.ctx, e.project, e.user, "Create hello.txt", testModel, lead)
|
||||
if err != nil {
|
||||
t.Fatalf("start todo: %v", err)
|
||||
}
|
||||
@@ -897,7 +898,7 @@ func TestStartTodo(t *testing.T) {
|
||||
t.Fatalf("todo task %+v", task)
|
||||
}
|
||||
|
||||
_, err = m.StartTodo(e.ctx, e.project, e.user, "Create hello.txt", testModel)
|
||||
_, err = m.StartTodo(e.ctx, e.project, e.user, "Create hello.txt", testModel, lead)
|
||||
if !errors.Is(err, agents.ErrConflict) {
|
||||
t.Fatalf("second start of the same item: %v", err)
|
||||
}
|
||||
@@ -906,6 +907,9 @@ func TestStartTodo(t *testing.T) {
|
||||
return ev.Kind == "turn.ended" && ev.TaskId != nil && *ev.TaskId == task.Id
|
||||
})
|
||||
for _, ev := range events {
|
||||
if ev.Kind == "task.created" && ev.TaskId != nil && *ev.TaskId == task.Id && (ev.Actor != lead || ev.Payload["created_by"] != login) {
|
||||
t.Fatalf("task.created actor %q, created_by %v", ev.Actor, ev.Payload["created_by"])
|
||||
}
|
||||
if ev.Kind == "user.message" && ev.TaskId != nil && *ev.TaskId == task.Id {
|
||||
text, _ := ev.Payload["text"].(string)
|
||||
if !strings.Contains(text, "- Create hello.txt\n It holds the single line `hi`.") || !strings.Contains(text, "remove this item from TODO.md") {
|
||||
|
||||
Reference in New Issue
Block a user