96 lines
2.4 KiB
TypeScript
96 lines
2.4 KiB
TypeScript
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)
|
|
})
|
|
})
|