Files
David Gageot 9ef47aed45 refactor(runtime): run harness agents through a registered driver
pkg/harness defines the Event/Provider contract; pkg/codingharness
implements it on top of rumpl/harness and exposes Factory. The runtime no
longer imports either, so embedders that never run harness agents drop the
harness CLI drivers. The CLI and loaderdefaults.Opts register the driver
with runtime.RegisterHarness(codingharness.Factory); an unregistered
harness agent fails with ErrHarnessNotRegistered.
2026-09-04 09:23:11 +02:00

30 lines
768 B
Go

package codingharness
import (
"testing"
"github.com/stretchr/testify/require"
"github.com/docker/docker-agent/pkg/config/latest"
)
func TestNewProviderOmitsModelFlagWhenModelEmpty(t *testing.T) {
t.Parallel()
p, err := NewProvider(&latest.HarnessConfig{Type: TypeCodex})
require.NoError(t, err)
cmd := p.PrintCommand("do it")
require.Contains(t, cmd, "codex exec --json")
require.NotContains(t, cmd, " -m ")
}
func TestNewProviderUsesConfiguredModel(t *testing.T) {
t.Parallel()
p, err := NewProvider(&latest.HarnessConfig{Type: TypeClaudeCode, Model: "claude-sonnet-4-5", Effort: "high"})
require.NoError(t, err)
cmd := p.PrintCommand("do it")
require.Contains(t, cmd, "--model 'claude-sonnet-4-5'")
require.Contains(t, cmd, "--effort high")
}