import { expect, test } from '@playwright/test' import { queryScalar, resetDatabases, seedQuestions } from './helpers/stack' const apiBase = process.env.FULLSTACK_API_BASE_URL ?? 'http://127.0.0.1:18096' test.describe('full-stack question-bank integration', () => { test.beforeEach(() => { resetDatabases() seedQuestions() }) test('gateway forwards random question and answer validation against DB-backed questions', async ({ request, }) => { const randomResp = await request.post(`${apiBase}/api/v1/questions/random`, { data: {}, }) expect(randomResp.ok()).toBeTruthy() const randomBody = await randomResp.json() expect(randomBody.success).toBeTruthy() expect(randomBody.data.id).toBeTruthy() const questionID = randomBody.data.id as string const validateResp = await request.post( `${apiBase}/api/v1/questions/${questionID}/validate-answer`, { data: { answer: '2' }, } ) expect(validateResp.ok()).toBeTruthy() const validateBody = await validateResp.json() expect(validateBody.success).toBeTruthy() expect(typeof validateBody.data.matched).toBe('boolean') const dbCount = Number.parseInt( queryScalar('questions', 'SELECT COUNT(*) FROM questions WHERE is_active = true;'), 10 ) expect(dbCount).toBeGreaterThanOrEqual(2) }) })