Help us shape the future of Go! Take the 2026 Go Developer Survey

e2e

package
v0.6.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 13, 2025 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

Package e2e provides end-to-end testing utilities for ToolHive.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckTHVBinaryAvailable

func CheckTHVBinaryAvailable(config *TestConfig) error

CheckTHVBinaryAvailable checks if the thv binary is available

func CreateAndTrackGroup added in v0.2.9

func CreateAndTrackGroup(config *TestConfig, groupName string, createdGroups *[]string)

CreateAndTrackGroup creates a group and tracks it for cleanup

func DebugServerState

func DebugServerState(config *TestConfig, serverName string)

DebugServerState prints debugging information about a server

func GetMCPServerURL

func GetMCPServerURL(config *TestConfig, serverName string) (string, error)

GetMCPServerURL gets the URL for an MCP server

func GetServerLogs

func GetServerLogs(config *TestConfig, serverName string) (string, error)

GetServerLogs gets the logs for a server to help with debugging

func IsServerRunning added in v0.2.9

func IsServerRunning(config *TestConfig, serverName string) bool

IsServerRunning checks if an MCP server is running

func RemoveGroup added in v0.2.9

func RemoveGroup(config *TestConfig, groupName string) error

RemoveGroup removes a group by name

func StartDockerCommand added in v0.0.40

func StartDockerCommand(args ...string) *exec.Cmd

StartDockerCommand starts a docker command with proper environment setup and returns the command

func StartLongRunningTHVCommand added in v0.0.40

func StartLongRunningTHVCommand(config *TestConfig, args ...string) *exec.Cmd

StartLongRunningTHVCommand starts a long-running ToolHive command and returns the process

func StopAndRemoveMCPServer

func StopAndRemoveMCPServer(config *TestConfig, serverName string) error

StopAndRemoveMCPServer stops and removes an MCP server This function is designed for cleanup and tolerates servers that don't exist

func TestMCPServerBasicFunctionality

func TestMCPServerBasicFunctionality(config *TestConfig, serverURL string) error

TestMCPServerBasicFunctionality tests basic MCP server functionality

func WaitForMCPServer

func WaitForMCPServer(config *TestConfig, serverName string, timeout time.Duration) error

WaitForMCPServer waits for an MCP server to be running

func WaitForMCPServerReady

func WaitForMCPServerReady(config *TestConfig, serverURL string, mode string, timeout time.Duration) error

WaitForMCPServerReady waits for an MCP server to be ready and responsive

func WaitForWorkloadUnhealthy added in v0.2.7

func WaitForWorkloadUnhealthy(config *TestConfig, serverName string, timeout time.Duration) error

WaitForWorkloadUnhealthy waits for a workload to be marked as unhealthy

func WithAccessTokenLifespan added in v0.0.48

func WithAccessTokenLifespan(d time.Duration) func(*fosite.Config)

WithAccessTokenLifespan sets the lifespan of access tokens for the OIDC mock server.

Types

type AuthRequest added in v0.0.40

type AuthRequest struct {
	ClientID      string
	RedirectURI   string
	State         string
	CodeChallenge string
	ResponseType  string
	Scope         string
}

AuthRequest contains the parameters from an OAuth authorization request

type MCPClientHelper

type MCPClientHelper struct {
	// contains filtered or unexported fields
}

MCPClientHelper provides high-level MCP client operations for e2e tests

func NewMCPClientForSSE

func NewMCPClientForSSE(config *TestConfig, serverURL string) (*MCPClientHelper, error)

NewMCPClientForSSE creates a new MCP client for SSE transport

func NewMCPClientForStreamableHTTP added in v0.0.48

func NewMCPClientForStreamableHTTP(config *TestConfig, serverURL string) (*MCPClientHelper, error)

NewMCPClientForStreamableHTTP creates a new MCP client for streamable HTTP transport

func (*MCPClientHelper) CallTool

func (h *MCPClientHelper) CallTool(
	ctx context.Context, toolName string, arguments map[string]interface{},
) (*mcp.CallToolResult, error)

CallTool calls a specific tool with the given arguments

func (*MCPClientHelper) Close

func (h *MCPClientHelper) Close() error

Close closes the MCP client connection

func (*MCPClientHelper) ExpectResourceExists

func (h *MCPClientHelper) ExpectResourceExists(ctx context.Context, uri string)

ExpectResourceExists verifies that a resource with the given URI exists

func (*MCPClientHelper) ExpectToolCall

func (h *MCPClientHelper) ExpectToolCall(
	ctx context.Context, toolName string, arguments map[string]interface{},
) *mcp.CallToolResult

ExpectToolCall verifies that a tool can be called successfully

func (*MCPClientHelper) ExpectToolExists

func (h *MCPClientHelper) ExpectToolExists(ctx context.Context, toolName string)

ExpectToolExists verifies that a tool with the given name exists

func (*MCPClientHelper) Initialize

func (h *MCPClientHelper) Initialize(ctx context.Context) error

Initialize initializes the MCP connection

func (*MCPClientHelper) ListResources

func (h *MCPClientHelper) ListResources(ctx context.Context) (*mcp.ListResourcesResult, error)

ListResources lists all available resources from the MCP server

func (*MCPClientHelper) ListTools

func (h *MCPClientHelper) ListTools(ctx context.Context) (*mcp.ListToolsResult, error)

ListTools lists all available tools from the MCP server

func (*MCPClientHelper) Ping

func (h *MCPClientHelper) Ping(ctx context.Context) error

Ping sends a ping to test connectivity

func (*MCPClientHelper) ReadResource

func (h *MCPClientHelper) ReadResource(ctx context.Context, uri string) (*mcp.ReadResourceResult, error)

ReadResource reads a specific resource

type OIDCMockServer added in v0.0.40

type OIDCMockServer struct {
	// contains filtered or unexported fields
}

OIDCMockServer represents a lightweight OIDC server using Ory Fosite

func NewOIDCMockServer added in v0.0.40

func NewOIDCMockServer(port int, clientID, clientSecret string, opts ...func(*fosite.Config)) (*OIDCMockServer, error)

NewOIDCMockServer creates a new OIDC mock server using Ory Fosite

func (*OIDCMockServer) CompleteAuthRequest added in v0.0.40

func (*OIDCMockServer) CompleteAuthRequest(authReq *AuthRequest) error

CompleteAuthRequest automatically completes an OAuth request by making a callback

func (*OIDCMockServer) EnableAutoComplete added in v0.0.40

func (m *OIDCMockServer) EnableAutoComplete()

EnableAutoComplete enables automatic OAuth flow completion for testing

func (*OIDCMockServer) GetBaseURL added in v0.0.40

func (m *OIDCMockServer) GetBaseURL() string

GetBaseURL returns the base URL of the mock server

func (*OIDCMockServer) Start added in v0.0.40

func (m *OIDCMockServer) Start() error

Start starts the OIDC mock server

func (*OIDCMockServer) Stop added in v0.0.40

func (m *OIDCMockServer) Stop() error

Stop stops the OIDC mock server

func (*OIDCMockServer) WaitForAuthRequest added in v0.0.40

func (m *OIDCMockServer) WaitForAuthRequest(timeout time.Duration) (*AuthRequest, error)

WaitForAuthRequest waits for an OAuth authorization request and returns its parameters

type THVCommand

type THVCommand struct {
	// contains filtered or unexported fields
}

THVCommand represents a ToolHive CLI command execution

func NewTHVCommand

func NewTHVCommand(config *TestConfig, args ...string) *THVCommand

NewTHVCommand creates a new ToolHive command

func (*THVCommand) ExpectFailure

func (c *THVCommand) ExpectFailure() (string, string, error)

ExpectFailure runs the command and expects it to fail

func (*THVCommand) ExpectSuccess

func (c *THVCommand) ExpectSuccess() (string, string)

ExpectSuccess runs the command and expects it to succeed

func (*THVCommand) Run

func (c *THVCommand) Run() (string, string, error)

Run executes the ToolHive command and returns stdout, stderr, and error

func (*THVCommand) RunWithTimeout

func (c *THVCommand) RunWithTimeout(timeout time.Duration) (string, string, error)

RunWithTimeout executes the ToolHive command with a specific timeout

func (*THVCommand) WithDir

func (c *THVCommand) WithDir(dir string) *THVCommand

WithDir sets the working directory for the command

func (*THVCommand) WithEnv

func (c *THVCommand) WithEnv(env ...string) *THVCommand

WithEnv adds environment variables to the command

func (*THVCommand) WithStdin added in v0.2.9

func (c *THVCommand) WithStdin(stdin string) *THVCommand

WithStdin sets the stdin input for the command

type TestConfig

type TestConfig struct {
	THVBinary    string
	TestTimeout  time.Duration
	CleanupAfter bool
}

TestConfig holds configuration for e2e tests

func NewTestConfig

func NewTestConfig() *TestConfig

NewTestConfig creates a new test configuration with defaults

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL