Configure board deployment and backend proxy
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import { createRealtimeServer } from './realtime-server.mjs';
|
||||
import WebSocket from 'ws';
|
||||
|
||||
test('broadcasts focus events to other connected clients', async () => {
|
||||
const server = createRealtimeServer(0);
|
||||
await new Promise((resolve) => server.listen(resolve));
|
||||
const { port } = server.address();
|
||||
|
||||
try {
|
||||
const screen = new WebSocket(`ws://127.0.0.1:${port}`);
|
||||
const controller = new WebSocket(`ws://127.0.0.1:${port}`);
|
||||
|
||||
await Promise.all([
|
||||
new Promise((resolve) => screen.once('open', resolve)),
|
||||
new Promise((resolve) => controller.once('open', resolve)),
|
||||
]);
|
||||
|
||||
const received = new Promise((resolve) => {
|
||||
screen.once('message', (data) => resolve(JSON.parse(data)));
|
||||
});
|
||||
|
||||
controller.send(JSON.stringify({
|
||||
type: 'FOCUS_NAME',
|
||||
cloudId: 'demo',
|
||||
name: 'Sophia',
|
||||
messageId: 'focus-1',
|
||||
sentAt: 1,
|
||||
}));
|
||||
|
||||
assert.deepEqual(await received, {
|
||||
type: 'FOCUS_NAME',
|
||||
cloudId: 'demo',
|
||||
name: 'Sophia',
|
||||
messageId: 'focus-1',
|
||||
sentAt: 1,
|
||||
});
|
||||
|
||||
screen.close();
|
||||
controller.close();
|
||||
} finally {
|
||||
await new Promise((resolve) => server.close(resolve));
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user