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 ¶
- func GetRandomResponse() string
- func GetRandomTool() string
- func GetRandomToolArgs() string
- func GetRandomToolArgsForTool(toolName string) string
- func GetRandomToolArgsFromUserTools(userTools []*tools.UnifiedTool) string
- func GetRandomToolFromUserTools(userTools []*tools.UnifiedTool) string
- func Start(config Config) error
- type Config
- type GeminiAPIRequest
- type MockServer
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 ¶
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
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