agent/pkg/agentic/plan_compat_test.go
Snider 9c6f10902e fix(agent): mcp.Register startup panic + test isolation + CLI test standard
- Replace broken registerMCPService with mcp.Register (fixes nil ServiceRuntime panic)
- Remove dead mcp_service.go, update tests to use mcp.Register directly
- Add setTestWorkspace() helper to clear workspaceRootOverride between tests
- Fix 40+ test files with workspace state poisoning from loadAgentConfig
- Fix forge.lthn.ai → dappco.re in findConsumersList test
- Fix BranchWorkspaceCount test to use isolated temp dir
- Add CLI test standard: 32 tests across 19 subsystems (tests/cli/)
- All 9 packages pass, 0 failures

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-08 16:15:14 +01:00

108 lines
3 KiB
Go

// SPDX-License-Identifier: EUPL-1.2
package agentic
import (
"context"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestPlancompat_PlanCreateCompat_Good(t *testing.T) {
dir := t.TempDir()
setTestWorkspace(t, dir)
s := newTestPrep(t)
_, output, err := s.planCreateCompat(context.Background(), nil, PlanCreateInput{
Title: "Compatibility Plan",
Description: "Match the slug-first RFC surface",
Phases: []Phase{
{Name: "Setup", Tasks: []PlanTask{{Title: "Review RFC"}}},
},
})
require.NoError(t, err)
assert.True(t, output.Success)
assert.Contains(t, output.Plan.Slug, "compatibility-plan")
assert.Equal(t, "draft", output.Plan.Status)
assert.Equal(t, 1, output.Plan.Phases)
}
func TestPlancompat_PlanGetCompat_Good_BySlug(t *testing.T) {
dir := t.TempDir()
setTestWorkspace(t, dir)
s := newTestPrep(t)
_, created, err := s.planCreate(context.Background(), nil, PlanCreateInput{
Title: "Get Compat",
Description: "Read by slug",
Phases: []Phase{
{Name: "Setup", Tasks: []PlanTask{{Title: "Review RFC", Status: "completed"}, {Title: "Patch code"}}},
},
})
require.NoError(t, err)
plan, err := readPlan(PlansRoot(), created.ID)
require.NoError(t, err)
_, output, err := s.planGetCompat(context.Background(), nil, PlanReadInput{Slug: plan.Slug})
require.NoError(t, err)
assert.True(t, output.Success)
assert.Equal(t, plan.Slug, output.Plan.Slug)
assert.Equal(t, 2, output.Plan.Progress.Total)
assert.Equal(t, 1, output.Plan.Progress.Completed)
assert.Equal(t, 50, output.Plan.Progress.Percentage)
}
func TestPlancompat_PlanUpdateStatusCompat_Good(t *testing.T) {
dir := t.TempDir()
setTestWorkspace(t, dir)
s := newTestPrep(t)
_, created, err := s.planCreate(context.Background(), nil, PlanCreateInput{
Title: "Status Compat",
Description: "Update by slug",
})
require.NoError(t, err)
plan, err := readPlan(PlansRoot(), created.ID)
require.NoError(t, err)
_, output, err := s.planUpdateStatusCompat(context.Background(), nil, PlanStatusUpdateInput{
Slug: plan.Slug,
Status: "active",
})
require.NoError(t, err)
assert.True(t, output.Success)
assert.Equal(t, "active", output.Plan.Status)
}
func TestPlancompat_PlanArchiveCompat_Good(t *testing.T) {
dir := t.TempDir()
setTestWorkspace(t, dir)
s := newTestPrep(t)
_, created, err := s.planCreate(context.Background(), nil, PlanCreateInput{
Title: "Archive Compat",
Description: "Archive by slug",
})
require.NoError(t, err)
plan, err := readPlan(PlansRoot(), created.ID)
require.NoError(t, err)
_, output, err := s.planArchiveCompat(context.Background(), nil, PlanDeleteInput{
Slug: plan.Slug,
Reason: "No longer needed",
})
require.NoError(t, err)
assert.True(t, output.Success)
assert.Equal(t, plan.Slug, output.Archived)
archivedPlan, err := readPlan(PlansRoot(), plan.Slug)
require.NoError(t, err)
assert.Equal(t, "archived", archivedPlan.Status)
assert.False(t, archivedPlan.ArchivedAt.IsZero())
assert.Contains(t, archivedPlan.Notes, "No longer needed")
}