79 lines
2 KiB
Go
79 lines
2 KiB
Go
// SPDX-License-Identifier: EUPL-1.2
|
|
|
|
package agentic
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestTask_TaskUpdate_Good(t *testing.T) {
|
|
dir := t.TempDir()
|
|
t.Setenv("CORE_WORKSPACE", dir)
|
|
|
|
s := newTestPrep(t)
|
|
_, created, err := s.planCreate(context.Background(), nil, PlanCreateInput{
|
|
Title: "Task Update",
|
|
Description: "Update task by identifier",
|
|
Phases: []Phase{
|
|
{Name: "Setup", Tasks: []PlanTask{{ID: "1", Title: "Review RFC"}}},
|
|
},
|
|
})
|
|
require.NoError(t, err)
|
|
|
|
plan, err := readPlan(PlansRoot(), created.ID)
|
|
require.NoError(t, err)
|
|
|
|
_, output, err := s.taskUpdate(context.Background(), nil, TaskUpdateInput{
|
|
PlanSlug: plan.Slug,
|
|
PhaseOrder: 1,
|
|
TaskIdentifier: "1",
|
|
Status: "completed",
|
|
Notes: "Done",
|
|
})
|
|
require.NoError(t, err)
|
|
assert.True(t, output.Success)
|
|
assert.Equal(t, "completed", output.Task.Status)
|
|
assert.Equal(t, "Done", output.Task.Notes)
|
|
}
|
|
|
|
func TestTask_TaskToggle_Bad_MissingIdentifier(t *testing.T) {
|
|
s := newTestPrep(t)
|
|
_, _, err := s.taskToggle(context.Background(), nil, TaskToggleInput{
|
|
PlanSlug: "my-plan",
|
|
PhaseOrder: 1,
|
|
})
|
|
assert.Error(t, err)
|
|
assert.Contains(t, err.Error(), "task_identifier is required")
|
|
}
|
|
|
|
func TestTask_TaskToggle_Ugly_CriteriaFallback(t *testing.T) {
|
|
dir := t.TempDir()
|
|
t.Setenv("CORE_WORKSPACE", dir)
|
|
|
|
s := newTestPrep(t)
|
|
_, created, err := s.planCreate(context.Background(), nil, PlanCreateInput{
|
|
Title: "Task Toggle",
|
|
Description: "Toggle criteria-derived task",
|
|
Phases: []Phase{
|
|
{Name: "Setup", Criteria: []string{"Review RFC"}},
|
|
},
|
|
})
|
|
require.NoError(t, err)
|
|
|
|
plan, err := readPlan(PlansRoot(), created.ID)
|
|
require.NoError(t, err)
|
|
|
|
_, output, err := s.taskToggle(context.Background(), nil, TaskToggleInput{
|
|
PlanSlug: plan.Slug,
|
|
PhaseOrder: 1,
|
|
TaskIdentifier: 1,
|
|
})
|
|
require.NoError(t, err)
|
|
assert.True(t, output.Success)
|
|
assert.Equal(t, "completed", output.Task.Status)
|
|
assert.Equal(t, "Review RFC", output.Task.Title)
|
|
}
|