Spaces:
Runtime error
Runtime error
| import { test, expect } from '@playwright/test' | |
| import { API_KEY_HEADER, createTestAgent, deleteTestAgent } from './helpers' | |
| /** | |
| * E2E tests for agent model configuration updates. | |
| * Verifies the API handles edge cases like empty/null model values. | |
| */ | |
| test.describe('Agent Model Config', () => { | |
| const cleanup: number[] = [] | |
| test.afterEach(async ({ request }) => { | |
| for (const id of cleanup) { | |
| await deleteTestAgent(request, id).catch(() => {}) | |
| } | |
| cleanup.length = 0 | |
| }) | |
| test('PUT with valid model config succeeds', async ({ request }) => { | |
| const { id } = await createTestAgent(request) | |
| cleanup.push(id) | |
| const res = await request.put(`/api/agents/${id}`, { | |
| headers: API_KEY_HEADER, | |
| data: { | |
| gateway_config: { | |
| model: { | |
| primary: 'claude-3-5-sonnet-20241022', | |
| fallbacks: ['gpt-4o'], | |
| }, | |
| }, | |
| }, | |
| }) | |
| expect(res.status()).toBe(200) | |
| }) | |
| test('PUT with empty fallbacks array succeeds', async ({ request }) => { | |
| const { id } = await createTestAgent(request) | |
| cleanup.push(id) | |
| const res = await request.put(`/api/agents/${id}`, { | |
| headers: API_KEY_HEADER, | |
| data: { | |
| gateway_config: { | |
| model: { | |
| primary: 'claude-3-5-sonnet-20241022', | |
| fallbacks: [], | |
| }, | |
| }, | |
| }, | |
| }) | |
| expect(res.status()).toBe(200) | |
| }) | |
| test('PUT with empty string primary returns appropriate response', async ({ request }) => { | |
| const { id } = await createTestAgent(request) | |
| cleanup.push(id) | |
| const res = await request.put(`/api/agents/${id}`, { | |
| headers: API_KEY_HEADER, | |
| data: { | |
| gateway_config: { | |
| model: { | |
| primary: '', | |
| fallbacks: [], | |
| }, | |
| }, | |
| }, | |
| }) | |
| // Server should accept the update (model config is optional gateway config) | |
| expect([200, 400]).toContain(res.status()) | |
| }) | |
| test('PUT with whitespace-only fallbacks filters them', async ({ request }) => { | |
| const { id } = await createTestAgent(request) | |
| cleanup.push(id) | |
| const res = await request.put(`/api/agents/${id}`, { | |
| headers: API_KEY_HEADER, | |
| data: { | |
| gateway_config: { | |
| model: { | |
| primary: 'claude-3-5-sonnet-20241022', | |
| fallbacks: [' ', '', 'gpt-4o'], | |
| }, | |
| }, | |
| }, | |
| }) | |
| expect(res.status()).toBe(200) | |
| }) | |
| }) | |