mock_server

package
v0.0.16 Latest Latest
Warning

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

Go to latest
Published: Jul 26, 2025 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Example (MockServerUsage)

Example test showing how to use the mock server for integration testing

// This example shows how you would use the mock server for testing

// 1. Start the mock server (in a real test, you'd do this in a goroutine)
fmt.Println("# Start mock server:")
fmt.Println("kode mock-server --port 8080")

// 2. Use the chat command with the mock server
fmt.Println("\n# Test with mock server:")
fmt.Println("kode chat --base-url http://localhost:8080 \"Hello world\"")

// 3. Test with different models
fmt.Println("\n# Test different providers:")
fmt.Println("kode chat --base-url http://localhost:8080 --model gpt-4o \"Test OpenAI\"")
fmt.Println("kode chat --base-url http://localhost:8080 --model claude-3-7-sonnet \"Test Anthropic\"")
fmt.Println("kode chat --base-url http://localhost:8080 --model gemini-2.0-flash \"Test Gemini\"")
Output:

# Start mock server:
kode mock-server --port 8080

# Test with mock server:
kode chat --base-url http://localhost:8080 "Hello world"

# Test different providers:
kode chat --base-url http://localhost:8080 --model gpt-4o "Test OpenAI"
kode chat --base-url http://localhost:8080 --model claude-3-7-sonnet "Test Anthropic"
kode chat --base-url http://localhost:8080 --model gemini-2.0-flash "Test Gemini"

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetRandomResponse

func GetRandomResponse() string

GetRandomResponse returns a random mock response

func GetRandomTool

func GetRandomTool() string

GetRandomTool returns a random tool name from builtin tools

func GetRandomToolArgs

func GetRandomToolArgs() string

GetRandomToolArgs returns random tool arguments as JSON string based on the tool schema

func GetRandomToolArgsForTool

func GetRandomToolArgsForTool(toolName string) string

GetRandomToolArgsForTool returns random arguments for a specific tool

func GetRandomToolArgsFromUserTools

func GetRandomToolArgsFromUserTools(userTools []*tools.UnifiedTool) string

GetRandomToolArgsFromUserTools generates random arguments for user-provided tools

func GetRandomToolFromUserTools

func GetRandomToolFromUserTools(userTools []*tools.UnifiedTool) string

GetRandomToolFromUserTools returns a random tool from user-provided tools

func Start

func Start(config Config) error

Start starts the mock HTTP server

Types

type Config

type Config struct {
	Port             int
	Provider         string // "openai", "anthropic", "gemini", "all"
	FirstMsgToolCall bool   // if true, always respond with tool call instead of random
}

Config holds the configuration for the mock server

type GeminiAPIRequest

type GeminiAPIRequest struct {
	Contents []*genai.Content `json:"contents"`
	Tools    []*genai.Tool    `json:"tools,omitempty"`
}

GeminiAPIRequest represents the minimal Gemini API request structure for parsing (SDK doesn't provide request parsing types, only response types)

type MockServer

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

func NewMockServer

func NewMockServer(config Config) *MockServer

func (*MockServer) HandleAnthropicMock

func (m *MockServer) HandleAnthropicMock(w http.ResponseWriter, r *http.Request)

HandleAnthropicMock handles Anthropic API mock responses

func (*MockServer) HandleGeminiMock

func (m *MockServer) HandleGeminiMock(w http.ResponseWriter, r *http.Request)

HandleGeminiMock handles Gemini API mock responses

func (*MockServer) HandleOpenAIMock

func (m *MockServer) HandleOpenAIMock(w http.ResponseWriter, r *http.Request)

HandleOpenAIMock handles OpenAI API mock responses

Jump to

Keyboard shortcuts

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