ClaudeCode.Test.Factory (ClaudeCode v0.16.0)
View SourceTest factories for ClaudeCode structs.
Provides simple factory functions with sensible defaults that accept keyword lists or maps for overrides.
Usage
import ClaudeCode.Test.Factory
# Create with defaults
text_block()
# Override with keywords
text_block(text: "custom text")
# Override with map
text_block(%{text: "custom text"})
# Compose factories
assistant_message(message: %{content: [text_block(text: "Hello")]})
Summary
Functions
Creates an AssistantMessage with default values.
Creates a CompactBoundaryMessage with default values.
Returns default usage map for messages
Generates a test message ID
Generates a test session ID
Generates a test signature
Generates a test tool ID
Generates a test UUID
Creates a PartialAssistantMessage (stream event) with default values.
Creates a ResultMessage with default values.
Creates a content_block_start stream event.
Creates a content_block_stop stream event.
Creates an input_json_delta stream event for tool use streaming.
Creates a message_delta stream event.
Creates a message_start stream event.
Creates a message_stop stream event.
Creates a complete sequence of stream events simulating a text response.
Creates a text delta stream event.
Creates a thinking_delta stream event for extended thinking streaming.
Creates a SystemMessage with default values.
Creates a TextBlock with default text.
Creates a TextBlock with the given text.
Creates a ThinkingBlock with default values.
Creates a ThinkingBlock with positional arguments.
Creates a ToolResultBlock with default values.
Creates a ToolResultBlock with positional arguments.
Creates a ToolUseBlock with default values.
Creates a ToolUseBlock with positional arguments.
Generates a unique numeric ID
Creates a UserMessage with default values.
Functions
Creates an AssistantMessage with default values.
The nested message field can be overridden with a map.
assistant_message()
assistant_message(message: %{content: [text_block()]})
assistant_message(session_id: "custom-session")
Creates a CompactBoundaryMessage with default values.
compact_boundary_message()
compact_boundary_message(compact_metadata: %{trigger: "auto", pre_tokens: 5000})
Returns default usage map for messages
Generates a test message ID
Generates a test session ID
Generates a test signature
Generates a test tool ID
Generates a test UUID
Creates a PartialAssistantMessage (stream event) with default values.
partial_message()
partial_message(event: %{type: :content_block_delta, delta: %{type: :text_delta, text: "Hi"}})
Creates a ResultMessage with default values.
result_message()
result_message(result: "Task completed", is_error: false)
result_message(is_error: true, subtype: :error_during_execution)
Creates a content_block_start stream event.
stream_event_content_block_start()
stream_event_content_block_start(%{index: 0, content_block: %{type: :text, text: ""}})
Creates a content_block_stop stream event.
stream_event_content_block_stop()
stream_event_content_block_stop(%{index: 0})
Creates an input_json_delta stream event for tool use streaming.
stream_event_input_json_delta("{"path":")
stream_event_input_json_delta(""/test.txt"}", %{index: 1})
Creates a message_delta stream event.
stream_event_message_delta()
stream_event_message_delta(%{delta: %{stop_reason: "end_turn"}})
Creates a message_start stream event.
stream_event_message_start()
stream_event_message_start(%{message: %{id: "msg_123"}})
Creates a message_stop stream event.
stream_event_message_stop()
Creates a complete sequence of stream events simulating a text response.
stream_event_sequence(["Hello", " ", "World!"])
Creates a text delta stream event.
stream_event_text_delta("Hello")
stream_event_text_delta("world", %{index: 0})
Creates a thinking_delta stream event for extended thinking streaming.
stream_event_thinking_delta("Let me reason...")
stream_event_thinking_delta("more reasoning", %{index: 0})
Creates a SystemMessage with default values.
system_message()
system_message(model: "claude-opus-4-20250514")
Creates a TextBlock with default text.
text_block()
text_block(text: "custom text")
Creates a TextBlock with the given text.
text_content("Hello world")
Creates a ThinkingBlock with default values.
thinking_block()
thinking_block(thinking: "Let me analyze this...")
Creates a ThinkingBlock with positional arguments.
thinking_content("Let me reason through this...")
thinking_content("Reasoning...", "sig_abc123")
Creates a ToolResultBlock with default values.
tool_result_block()
tool_result_block(content: "file contents", is_error: false)
Creates a ToolResultBlock with positional arguments.
tool_result_content("file contents")
tool_result_content("file contents", "tool_123")
tool_result_content("error message", "tool_123", true)
Creates a ToolUseBlock with default values.
tool_use_block()
tool_use_block(name: "Bash", input: %{command: "ls"})
Creates a ToolUseBlock with positional arguments.
tool_use_content("Read", %{path: "/tmp/file.txt"})
tool_use_content("Read", %{path: "/tmp/file.txt"}, "tool_123")
Generates a unique numeric ID
Creates a UserMessage with default values.
user_message()
user_message(message: %{content: [tool_result_block()]})