// e2e/mock_server.js // Simple Express mock server to emulate token server + broadcast & studio pages for E2E testing const express = require('express'); const bodyParser = require('body-parser'); const path = require('path'); const app = express(); app.use(bodyParser.json()); const port = process.env.MOCK_PORT ? Number(process.env.MOCK_PORT) : 4001; const sessions = new Map(); function generateId() { return 's' + Math.random().toString(36).slice(2,9); } app.post('/api/session', (req, res) => { const body = req.body || {}; const id = generateId(); const token = 'mocktoken-' + Math.random().toString(36).slice(2,12); sessions.set(id, { token, room: body.room || 'room', username: body.username || 'user' }); const studioUrl = `http://localhost:${port}/studio/${id}`; res.json({ id, studioUrl, redirectUrl: studioUrl, ttlSeconds: 300 }); }); app.get('/api/session/:id/token', (req, res) => { const id = req.params.id; const s = sessions.get(id); if (!s) return res.status(404).json({ error: 'not_found' }); res.json({ token: s.token, ttlSeconds: 300, room: s.room, username: s.username, url: `ws://localhost:7880` }); }); // Broadcast page app.get('/broadcast', (req, res) => { res.setHeader('Content-Type', 'text/html'); res.send(`