mission-control/tests/sessions-continue.spec.ts

64 lines
1.6 KiB
TypeScript

import { test, expect } from '@playwright/test'
import { API_KEY_HEADER } from './helpers'
test.describe('Sessions Continue API', () => {
test('requires auth', async ({ request }) => {
const res = await request.post('/api/sessions/continue', {
data: {
kind: 'claude-code',
id: 'abc123',
prompt: 'ping',
},
})
expect(res.status()).toBe(401)
})
test('rejects invalid kind', async ({ request }) => {
const res = await request.post('/api/sessions/continue', {
headers: API_KEY_HEADER,
data: {
kind: 'gateway',
id: 'abc123',
prompt: 'ping',
},
})
expect(res.status()).toBe(400)
})
test('rejects invalid session id', async ({ request }) => {
const res = await request.post('/api/sessions/continue', {
headers: API_KEY_HEADER,
data: {
kind: 'codex-cli',
id: 'abc/../bad',
prompt: 'ping',
},
})
expect(res.status()).toBe(400)
})
test('rejects empty prompt', async ({ request }) => {
const res = await request.post('/api/sessions/continue', {
headers: API_KEY_HEADER,
data: {
kind: 'claude-code',
id: 'abc123',
prompt: ' ',
},
})
expect(res.status()).toBe(400)
})
test('rejects oversized prompt', async ({ request }) => {
const res = await request.post('/api/sessions/continue', {
headers: API_KEY_HEADER,
data: {
kind: 'codex-cli',
id: 'abc123',
prompt: 'x'.repeat(6001),
},
})
expect(res.status()).toBe(400)
})
})