Release 2.5.2

This commit is contained in:
2026-08-03 19:18:30 +01:00
parent 37345f3949
commit 9d5029eff6
21 changed files with 195 additions and 49 deletions
+36
View File
@@ -87,6 +87,42 @@ test('player runtime snapshots websocket state and checks live names', async ()
}
});
test('player runtime accepts websocket auth from cookies', async () => {
process.env.PULSE_SIGNAGE_SHARED_SECRET = 'runtime-secret';
const runtime = createPlayerRuntime({ pool: null });
const server = http.createServer();
runtime.installWebsocket(server);
await new Promise((resolve) => server.listen(0, resolve));
const { port } = server.address();
const token = createPageAuthToken({ scope: 'player', slug: 'cookie-test' });
const client = new WebSocket(`ws://127.0.0.1:${port}/ws/screens/cookie-test`, {
headers: {
Cookie: `pulse_page_auth=${encodeURIComponent(token)}`
}
});
try {
await new Promise((resolve, reject) => {
client.once('open', resolve);
client.once('error', reject);
});
client.send(JSON.stringify({ type: 'state', clientId: 'cookie-client', clientName: 'Cookie Player', deviceId: 'device-cookie' }));
await waitFor(() => {
const snapshot = runtime.snapshotConnections('cookie-test')[0];
return snapshot && snapshot.clientName === 'Cookie Player' ? snapshot : null;
});
assert.equal(runtime.snapshotConnections('cookie-test')[0].clientName, 'Cookie Player');
} finally {
client.close();
await new Promise((resolve) => server.close(resolve));
}
});
test('player runtime sends targeted and broadcast commands to live sockets', async () => {
process.env.PULSE_SIGNAGE_SHARED_SECRET = 'runtime-secret';