Skip to content

Focus streaming and Claude client tests#58

Merged
billybonks merged 3 commits into
mainfrom
test/focus-tests-further
May 19, 2026
Merged

Focus streaming and Claude client tests#58
billybonks merged 3 commits into
mainfrom
test/focus-tests-further

Conversation

@billybonks
Copy link
Copy Markdown
Contributor

Goal

Focus and stabilize provider tests by simplifying streaming coverage and updating Claude client expectations.

Changes made to achieve the goal

Refactored streaming tests into smaller single-purpose cases, removed redundant prompt-length coverage, updated Claude error expectations, and refreshed recorded VCR fixtures for the affected tests.

read the commit messages for more details

i wanted to record a few but somehow caused a mass rerecord, doesnt matter
since fresh vcrs are better
stream_test had 3 cases

multi turn is delted since we kinda do that in handoff already split tool
call and basic text into two tests makes it easier with the way that handoff
works to do one test per file
remove prompt too long test since that is already done somewhere else
udpated the error message from claude
Copy link
Copy Markdown

@managerbot-app managerbot-app Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed Changes

Managerbot reviewed 6 out of 102 changed files in this pull request and generated 0 comments.

Files not reviewed (96)
  • test/fixtures/handoff/stream_image_test/anthropic_apikey_messages_claude-sonnet-4-20250514.json
  • test/fixtures/handoff/stream_image_test/anthropic_oauth_messages_claude-sonnet-4-20250514.json
  • test/fixtures/handoff/stream_image_test/openai_apikey_completions_gpt-5.1.json
  • test/fixtures/handoff/stream_image_test/openai_apikey_responses_gpt-5.4.json
  • test/fixtures/handoff/stream_image_test/openai_oauth_codex_gpt-5.4.json
  • test/fixtures/handoff/stream_reasoning_test/anthropic_apikey_messages_claude-sonnet-4-20250514.json
  • test/fixtures/handoff/stream_reasoning_test/anthropic_oauth_messages_claude-sonnet-4-20250514.json
  • test/fixtures/handoff/stream_reasoning_test/openai_apikey_completions_gpt-5.1.json
  • test/fixtures/handoff/stream_reasoning_test/openai_apikey_responses_gpt-5.4.json
  • test/fixtures/handoff/stream_reasoning_test/openai_oauth_codex_gpt-5.4.json
  • test/fixtures/handoff/stream_test/anthropic_oauth_messages_claude-sonnet-4-20250514.json
  • test/fixtures/handoff/stream_text_test/anthropic_apikey_messages_claude-sonnet-4-20250514.json
  • test/fixtures/handoff/stream_text_test/anthropic_oauth_messages_claude-sonnet-4-20250514.json
  • test/fixtures/handoff/stream_text_test/openai_apikey_completions_gpt-5.1.json
  • test/fixtures/handoff/stream_text_test/openai_apikey_responses_gpt-5.4.json
  • test/fixtures/handoff/stream_text_test/openai_oauth_codex_gpt-5.4.json
  • test/fixtures/handoff/stream_tool_call_test/anthropic_apikey_messages_claude-sonnet-4-20250514.json
  • test/fixtures/handoff/stream_tool_call_test/anthropic_oauth_messages_claude-sonnet-4-20250514.json
  • test/fixtures/handoff/stream_tool_call_test/openai_apikey_completions_gpt-5.1.json
  • test/fixtures/handoff/stream_tool_call_test/openai_apikey_responses_gpt-5.4.json
  • test/fixtures/handoff/stream_tool_call_test/openai_oauth_codex_gpt-5.4.json
  • test/fixtures/vcr_cassettes/integration/clients/claude_test_rb/test_throws_authentication_error.yml
  • test/fixtures/vcr_cassettes/integration/clients/claude_test_rb/test_throws_bad_request_error.yml
  • test/fixtures/vcr_cassettes/integration/clients/claude_test_rb/test_throws_not_found_error.yml
  • test/fixtures/vcr_cassettes/integration/clients/claude_test_rb/test_throws_throws_prompt_too_long_.yml
  • test/fixtures/vcr_cassettes/integration/clients/groq_test_rb/test_throws_authentication_error.yml
  • test/fixtures/vcr_cassettes/integration/clients/groq_test_rb/test_throws_bad_request_error.yml
  • test/fixtures/vcr_cassettes/integration/clients/groq_test_rb/test_throws_not_found_error.yml
  • test/fixtures/vcr_cassettes/integration/clients/groq_test_rb/test_throws_rate_limit_error.yml
  • test/fixtures/vcr_cassettes/integration/clients/openai_test_rb/test_embeddings_api.yml
  • test/fixtures/vcr_cassettes/integration/clients/openai_test_rb/test_throws_authentication_error.yml
  • test/fixtures/vcr_cassettes/integration/clients/openai_test_rb/test_throws_bad_request_error.yml
  • test/fixtures/vcr_cassettes/integration/clients/openai_test_rb/test_throws_not_found_error.yml
  • test/fixtures/vcr_cassettes/integration/clients/openai_test_rb/test_throws_rate_limit_error.yml
  • test/fixtures/vcr_cassettes/integration/live/cache_test_rb/test_live_cache_read_tokens_on_second_turn_anthropic_apikey_messages_anthropic_apikey_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/cache_test_rb/test_live_cache_read_tokens_on_second_turn_anthropic_apikey_messages_none_anthropic_apikey_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/cache_test_rb/test_live_cache_read_tokens_on_second_turn_openai_apikey_completions_none_openai_apikey_completions_gpt-5_1.yml
  • test/fixtures/vcr_cassettes/integration/live/cache_test_rb/test_live_cache_read_tokens_on_second_turn_openai_apikey_completions_openai_apikey_completions_gpt-5_1.yml
  • test/fixtures/vcr_cassettes/integration/live/cache_test_rb/test_live_cache_read_tokens_on_second_turn_openai_apikey_responses_none_openai_apikey_responses_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/cache_test_rb/test_live_cache_read_tokens_on_second_turn_openai_apikey_responses_openai_apikey_responses_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/cache_test_rb/test_live_cache_read_tokens_on_second_turn_openai_oauth_codex_openai_oauth_codex_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_image_test_rb/test_handoff_stream_image__anthropic_apikey_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_image_test_rb/test_handoff_stream_image__anthropic_oauth_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_image_test_rb/test_handoff_stream_image__openai_apikey_completions_gpt-5_1.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_image_test_rb/test_handoff_stream_image__openai_apikey_responses_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_image_test_rb/test_handoff_stream_image__openai_oauth_codex_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_reasoning_test_rb/test_handoff_stream_reasoning__anthropic_apikey_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_reasoning_test_rb/test_handoff_stream_reasoning__anthropic_oauth_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_reasoning_test_rb/test_handoff_stream_reasoning__openai_apikey_completions_gpt-5_1.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_reasoning_test_rb/test_handoff_stream_reasoning__openai_apikey_responses_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_reasoning_test_rb/test_handoff_stream_reasoning__openai_oauth_codex_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_test_rb/test_handoff_stream__anthropic_apikey_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_test_rb/test_handoff_stream__anthropic_oauth_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_test_rb/test_handoff_stream__openai_apikey_completions_gpt-5_1.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_test_rb/test_handoff_stream__openai_apikey_responses_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_test_rb/test_handoff_stream__openai_oauth_codex_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_text_test_rb/test_handoff_stream_text__anthropic_apikey_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_text_test_rb/test_handoff_stream_text__anthropic_oauth_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_text_test_rb/test_handoff_stream_text__openai_apikey_completions_gpt-5_1.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_text_test_rb/test_handoff_stream_text__openai_apikey_responses_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_text_test_rb/test_handoff_stream_text__openai_oauth_codex_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_tool_call_test_rb/test_handoff_stream_tool_call__anthropic_apikey_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_tool_call_test_rb/test_handoff_stream_tool_call__anthropic_oauth_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_tool_call_test_rb/test_handoff_stream_tool_call__openai_apikey_completions_gpt-5_1.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_tool_call_test_rb/test_handoff_stream_tool_call__openai_apikey_responses_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/handoff_stream_tool_call_test_rb/test_handoff_stream_tool_call__openai_oauth_codex_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/prompt_too_long_test_rb/test_live_prompt_too_long_anthropic_apikey_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/prompt_too_long_test_rb/test_live_prompt_too_long_anthropic_oauth_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/prompt_too_long_test_rb/test_live_prompt_too_long_openai_apikey_completions_gpt-5_1.yml
  • test/fixtures/vcr_cassettes/integration/live/prompt_too_long_test_rb/test_live_prompt_too_long_openai_apikey_responses_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/prompt_too_long_test_rb/test_live_prompt_too_long_openai_oauth_codex_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_image_test_rb/test_live_image_streaming_anthropic_apikey_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_image_test_rb/test_live_image_streaming_anthropic_oauth_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_image_test_rb/test_live_image_streaming_openai_apikey_completions_gpt-5_1.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_image_test_rb/test_live_image_streaming_openai_apikey_responses_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_image_test_rb/test_live_image_streaming_openai_oauth_codex_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_reasoning_test_rb/test_live_basic_thinking_anthropic_apikey_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_reasoning_test_rb/test_live_basic_thinking_anthropic_oauth_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_reasoning_test_rb/test_live_basic_thinking_openai_apikey_completions_gpt-5_1.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_reasoning_test_rb/test_live_basic_thinking_openai_apikey_responses_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_reasoning_test_rb/test_live_basic_thinking_openai_oauth_codex_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_test_rb/test_live_multi_turn_tool_streaming_anthropic_apikey_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_test_rb/test_live_multi_turn_tool_streaming_anthropic_oauth_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_test_rb/test_live_multi_turn_tool_streaming_openai_apikey_completions_gpt-5_1.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_test_rb/test_live_multi_turn_tool_streaming_openai_apikey_responses_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_test_rb/test_live_multi_turn_tool_streaming_openai_oauth_codex_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_text_test_rb/test_live_text_streaming_anthropic_apikey_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_text_test_rb/test_live_text_streaming_anthropic_oauth_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_text_test_rb/test_live_text_streaming_openai_apikey_completions_gpt-5_1.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_text_test_rb/test_live_text_streaming_openai_apikey_responses_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_text_test_rb/test_live_text_streaming_openai_oauth_codex_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_tool_call_test_rb/test_live_basic_tool_call_anthropic_apikey_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_tool_call_test_rb/test_live_basic_tool_call_anthropic_oauth_messages_claude-sonnet-4-20250514.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_tool_call_test_rb/test_live_basic_tool_call_openai_apikey_completions_gpt-5_1.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_tool_call_test_rb/test_live_basic_tool_call_openai_apikey_responses_gpt-5_4.yml
  • test/fixtures/vcr_cassettes/integration/live/stream_tool_call_test_rb/test_live_basic_tool_call_openai_oauth_codex_gpt-5_4.yml
Comments suppressed due to low confidence (0)

@billybonks billybonks merged commit cd04e4f into main May 19, 2026
1 check passed
@billybonks billybonks deleted the test/focus-tests-further branch May 19, 2026 07:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant