import { test } from 'magnitude-test'; test('[Happy Path] User can record voice and see transcript', async (agent) => { // Act: Go to chat page await agent.act('Navigate to /chat'); // Check: Verify initial state await agent.check('The chat input field is empty'); await agent.check('A "Start Recording" button is visible'); // Act: Click the record button // Note: This will require mocking the /api/voice-token response and the // MediaDevices/WebSocket browser APIs in a real test environment await agent.act('Click the "Start Recording" button'); // Check: UI updates to recording state await agent.check('A "Stop Recording" button is visible'); // Act: Simulate receiving a transcript from the (mocked) Deepgram WebSocket await agent.act( 'Simulate an interim transcript "Hello world" from the Deepgram WebSocket' ); // Check: The input field is updated await agent.check('The chat input field contains "Hello world"'); // Act: Simulate a final transcript await agent.act( 'Simulate a final transcript "Hello world." from the Deepgram WebSocket' ); // Check: The "Stop Recording" button is gone await agent.check('A "Start Recording" button is visible again'); // Check: The chat input is cleared (because it was submitted) await agent.check('The chat input field is empty'); // Check: The finalized transcript appears as a user message await agent.check('The message "Hello world." appears in the chat list'); });