agent/pkg/agentic/task_test.go
Virgil cccc02ed64 feat(agentic): add RFC plan compatibility surfaces
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 13:58:57 +00:00

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)
}