- Fix ChatBubble to handle non-string content with String() wrapper - Fix API route to use generateText for non-streaming requests - Add @ai-sdk/openai-compatible for non-OpenAI providers (DeepSeek, etc.) - Use Chat Completions API instead of Responses API for compatible providers - Update ChatBubble tests and fix component exports to kebab-case - Remove stale PascalCase ChatBubble.tsx file
1.2 KiB
1.2 KiB
Code Review Findings: Story 4.4 Provider Switching
Reviewer: Dev Agent (Amelia) Date: 2026-01-24 Status: ✅ Issues Fixed
Summary
The review was triggered by reported test failures in tests/e2e/settings-byod.spec.ts. The implementation of Provider Switching was found to be functional, but the tests failed due to strict mode violations and missing network mocks for connection validation.
Findings & Fixes
1. 🔴 HIGH: E2E Test Failure (Strict Mode Violation)
- Issue: The test selector
getByRole('button', { name: /Add.*Provider/i })was ambiguous, matching both the header "Add Provider" button and the list "Add New Provider" button. - Fix: Updated the test selector to use
exact: trueto target the header button specifically.
2. 🔴 HIGH: E2E Test Failure (Validation Rejection)
- Issue: The
ProviderFormenforces connection validation. The E2E tests used fake URLs which failed validation. - Fix: Added network mocking to the test
beforeEachblock to intercept validation requests and return success.
Verification
- Reference:
tests/e2e/settings-byod.spec.ts - Status: PASSED (2/2 tests active for chromium)