- 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
23 lines
1.2 KiB
Markdown
23 lines
1.2 KiB
Markdown
# 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: true` to target the header button specifically.
|
|
|
|
### 2. 🔴 HIGH: E2E Test Failure (Validation Rejection)
|
|
- **Issue:** The `ProviderForm` enforces connection validation. The E2E tests used fake URLs which failed validation.
|
|
- **Fix:** Added network mocking to the test `beforeEach` block to intercept validation requests and return success.
|
|
|
|
## Verification
|
|
- Reference: `tests/e2e/settings-byod.spec.ts`
|
|
- Status: **PASSED** (2/2 tests active for chromium)
|