agent/pkg/agentic/commands_forge_test.go
Snider 277510ee16 test: 413 new tests — agentic 54.3%, setup 75.8%, all packages passing
Coverage: agentic 40.1% → 54.3%, setup 71.5% → 75.8%
Total: 695 passing tests across all packages (was ~357)

New test files (15):
- commands_forge_test.go — parseForgeArgs, fmtIndex
- commands_workspace_test.go — extractField (9 cases)
- commands_test.go — command registration + Core integration
- handlers_test.go — RegisterHandlers, IPC pipeline, lifecycle
- plan_crud_test.go — full CRUD via MCP handlers (23 tests)
- prep_extra_test.go — buildPrompt, findConsumersList, pullWikiContent, getIssueBody
- queue_extra_test.go — ConcurrencyLimit YAML, delayForAgent, drainOne
- remote_client_test.go — mcpInitialize, mcpCall, readSSEData, setHeaders
- remote_test.go — resolveHost, remoteToken
- resume_test.go — resume dry run, agent override, validation
- review_queue_test.go — countFindings, parseRetryAfter, buildAutoPRBody
- review_queue_extra_test.go — buildReviewCommand, rateLimitState, reviewQueue
- verify_extra_test.go — attemptVerifyAndMerge, autoVerifyAndMerge pipeline
- watch_test.go — findActiveWorkspaces, resolveWorkspaceDir
- setup/setup_extra_test.go — defaultBuildCommand, defaultTestCommand all branches

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-25 00:44:17 +00:00

60 lines
1.5 KiB
Go

// SPDX-License-Identifier: EUPL-1.2
package agentic
import (
"testing"
core "dappco.re/go/core"
"github.com/stretchr/testify/assert"
)
// --- parseForgeArgs ---
func TestParseForgeArgs_Good_AllFields(t *testing.T) {
opts := core.NewOptions(
core.Option{Key: "org", Value: "myorg"},
core.Option{Key: "_arg", Value: "myrepo"},
core.Option{Key: "number", Value: "42"},
)
org, repo, num := parseForgeArgs(opts)
assert.Equal(t, "myorg", org)
assert.Equal(t, "myrepo", repo)
assert.Equal(t, int64(42), num)
}
func TestParseForgeArgs_Good_DefaultOrg(t *testing.T) {
opts := core.NewOptions(
core.Option{Key: "_arg", Value: "go-io"},
)
org, repo, num := parseForgeArgs(opts)
assert.Equal(t, "core", org, "should default to 'core'")
assert.Equal(t, "go-io", repo)
assert.Equal(t, int64(0), num, "no number provided")
}
func TestParseForgeArgs_Bad_EmptyOpts(t *testing.T) {
opts := core.NewOptions()
org, repo, num := parseForgeArgs(opts)
assert.Equal(t, "core", org, "should default to 'core'")
assert.Empty(t, repo)
assert.Equal(t, int64(0), num)
}
func TestParseForgeArgs_Bad_InvalidNumber(t *testing.T) {
opts := core.NewOptions(
core.Option{Key: "_arg", Value: "repo"},
core.Option{Key: "number", Value: "not-a-number"},
)
_, _, num := parseForgeArgs(opts)
assert.Equal(t, int64(0), num, "invalid number should parse as 0")
}
// --- fmtIndex ---
func TestFmtIndex_Good(t *testing.T) {
assert.Equal(t, "1", fmtIndex(1))
assert.Equal(t, "42", fmtIndex(42))
assert.Equal(t, "0", fmtIndex(0))
assert.Equal(t, "999999", fmtIndex(999999))
}