50 lines
1.9 KiB
Go
50 lines
1.9 KiB
Go
package status
|
|
|
|
// fakeHost satisfies cli.Host by embedding the interface (so every method is
|
|
// present) while overriding only the accessors RunStatus reads: Live, Header,
|
|
// AgentCtx, Cwd, Trust, Slash, Creds, Telemetry. The embedded nil interface
|
|
// would panic if any other method were called, which these tests never do.
|
|
// This lets the status tests run without the package-main REPL harness.
|
|
|
|
import (
|
|
"github.com/smallnest/pigo/internal/agentcore"
|
|
"github.com/smallnest/pigo/internal/cli"
|
|
"github.com/smallnest/pigo/internal/provider"
|
|
"github.com/smallnest/pigo/internal/runtime"
|
|
"github.com/smallnest/pigo/internal/session"
|
|
"github.com/smallnest/pigo/internal/trust"
|
|
)
|
|
|
|
type fakeHost struct {
|
|
cli.Host
|
|
live *cli.LiveConfig
|
|
header session.SessionHeader
|
|
agentCtx *agentcore.AgentContext
|
|
cwd string
|
|
trust *trust.Manager
|
|
slash *runtime.SlashRegistry
|
|
creds *provider.CredentialStore
|
|
telemetry *cli.TelemetryHolder
|
|
}
|
|
|
|
func (f *fakeHost) Live() *cli.LiveConfig { return f.live }
|
|
func (f *fakeHost) Header() session.SessionHeader { return f.header }
|
|
func (f *fakeHost) AgentCtx() *agentcore.AgentContext { return f.agentCtx }
|
|
func (f *fakeHost) Cwd() string { return f.cwd }
|
|
func (f *fakeHost) Trust() *trust.Manager { return f.trust }
|
|
func (f *fakeHost) Slash() *runtime.SlashRegistry { return f.slash }
|
|
func (f *fakeHost) Creds() *provider.CredentialStore { return f.creds }
|
|
func (f *fakeHost) Telemetry() *cli.TelemetryHolder { return f.telemetry }
|
|
|
|
// newFakeHost builds a fakeHost with empty-but-non-nil live config, agent
|
|
// context, slash registry and credential store, mirroring a fresh session.
|
|
// Tests customize the returned host's fields before calling RunStatus.
|
|
func newFakeHost() *fakeHost {
|
|
return &fakeHost{
|
|
live: &cli.LiveConfig{},
|
|
agentCtx: &agentcore.AgentContext{},
|
|
slash: runtime.NewSlashRegistry(),
|
|
creds: provider.NewCredentialStore(nil),
|
|
}
|
|
}
|