mission-control/tests/agent-optimize.spec.ts

71 lines
2.8 KiB
TypeScript

import { test, expect } from '@playwright/test'
import { API_KEY_HEADER, createTestAgent, deleteTestAgent } from './helpers'
test.describe('Agent Optimize API', () => {
test('GET /api/agents/optimize returns 401 without auth', async ({ request }) => {
const res = await request.get('/api/agents/optimize?agent=test')
expect(res.status()).toBe(401)
})
test('GET /api/agents/optimize returns 400 without agent param', async ({ request }) => {
const res = await request.get('/api/agents/optimize', { headers: API_KEY_HEADER })
expect(res.status()).toBe(400)
const body = await res.json()
expect(body.error).toContain('agent')
})
test('GET /api/agents/optimize returns 200 with agent param', async ({ request }) => {
const agent = await createTestAgent(request)
try {
const res = await request.get(`/api/agents/optimize?agent=${agent.name}`, { headers: API_KEY_HEADER })
expect(res.status()).toBe(200)
const body = await res.json()
expect(body).toHaveProperty('agent')
expect(body).toHaveProperty('efficiency')
expect(body).toHaveProperty('toolPatterns')
expect(body).toHaveProperty('performance')
expect(body).toHaveProperty('recommendations')
expect(body.agent).toBe(agent.name)
} finally {
await deleteTestAgent(request, agent.id)
}
})
test('efficiency has expected fields', async ({ request }) => {
const agent = await createTestAgent(request)
try {
const res = await request.get(`/api/agents/optimize?agent=${agent.name}`, { headers: API_KEY_HEADER })
const body = await res.json()
expect(body.efficiency).toHaveProperty('tokensPerTask')
expect(body.efficiency).toHaveProperty('fleetAverage')
expect(body.efficiency).toHaveProperty('percentile')
expect(body.efficiency).toHaveProperty('costPerTask')
} finally {
await deleteTestAgent(request, agent.id)
}
})
test('toolPatterns has mostUsed and leastEffective arrays', async ({ request }) => {
const agent = await createTestAgent(request)
try {
const res = await request.get(`/api/agents/optimize?agent=${agent.name}`, { headers: API_KEY_HEADER })
const body = await res.json()
expect(Array.isArray(body.toolPatterns.mostUsed)).toBe(true)
expect(Array.isArray(body.toolPatterns.leastEffective)).toBe(true)
} finally {
await deleteTestAgent(request, agent.id)
}
})
test('recommendations is an array', async ({ request }) => {
const agent = await createTestAgent(request)
try {
const res = await request.get(`/api/agents/optimize?agent=${agent.name}`, { headers: API_KEY_HEADER })
const body = await res.json()
expect(Array.isArray(body.recommendations)).toBe(true)
} finally {
await deleteTestAgent(request, agent.id)
}
})
})