agent/pkg/agentic/phase_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

72 lines
1.8 KiB
Go

// SPDX-License-Identifier: EUPL-1.2
package agentic
import (
"context"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestPhase_PhaseGet_Good(t *testing.T) {
dir := t.TempDir()
setTestWorkspace(t, dir)
s := newTestPrep(t)
_, created, err := s.planCreate(context.Background(), nil, PlanCreateInput{
Title: "Phase Get",
Description: "Read phase",
Phases: []Phase{{Number: 1, Name: "Setup"}},
})
require.NoError(t, err)
plan, err := readPlan(PlansRoot(), created.ID)
require.NoError(t, err)
_, output, err := s.phaseGet(context.Background(), nil, PhaseGetInput{
PlanSlug: plan.Slug,
PhaseOrder: 1,
})
require.NoError(t, err)
assert.True(t, output.Success)
assert.Equal(t, "Setup", output.Phase.Name)
}
func TestPhase_PhaseUpdateStatus_Bad_InvalidStatus(t *testing.T) {
s := newTestPrep(t)
_, _, err := s.phaseUpdateStatus(context.Background(), nil, PhaseStatusInput{
PlanSlug: "my-plan",
PhaseOrder: 1,
Status: "invalid",
})
assert.Error(t, err)
assert.Contains(t, err.Error(), "invalid status")
}
func TestPhase_PhaseAddCheckpoint_Ugly_AppendsCheckpoint(t *testing.T) {
dir := t.TempDir()
setTestWorkspace(t, dir)
s := newTestPrep(t)
_, created, err := s.planCreate(context.Background(), nil, PlanCreateInput{
Title: "Checkpoint Phase",
Description: "Append checkpoint",
Phases: []Phase{{Number: 1, Name: "Setup"}},
})
require.NoError(t, err)
plan, err := readPlan(PlansRoot(), created.ID)
require.NoError(t, err)
_, output, err := s.phaseAddCheckpoint(context.Background(), nil, PhaseCheckpointInput{
PlanSlug: plan.Slug,
PhaseOrder: 1,
Note: "Build passes",
})
require.NoError(t, err)
assert.True(t, output.Success)
require.Len(t, output.Phase.Checkpoints, 1)
assert.Equal(t, "Build passes", output.Phase.Checkpoints[0].Note)
}