Add player control-plane and dashboard updates
This commit is contained in:
@@ -4,7 +4,7 @@ const assert = require('node:assert/strict');
|
||||
require('../src/common');
|
||||
|
||||
const originalWebBaseUrl = process.env.WEB_BASE_URL;
|
||||
const { resolveWebBaseUrl } = require('../src/player-bridge/index');
|
||||
const { resolveWebBaseUrl, resolveScreenCommandTargets } = require('../src/player-bridge/index');
|
||||
|
||||
test.after(() => {
|
||||
if (originalWebBaseUrl === undefined) {
|
||||
@@ -42,4 +42,22 @@ test('resolveWebBaseUrl keeps external https hosts on the default port', () => {
|
||||
});
|
||||
|
||||
assert.equal(resolved, 'https://bridge.example.test');
|
||||
});
|
||||
|
||||
test('resolveScreenCommandTargets only returns open sockets for the requested screen', () => {
|
||||
const playerSockets = new Map([
|
||||
['player-a', { readyState: 1 }],
|
||||
['player-b', { readyState: 3 }],
|
||||
['player-c', { readyState: 1 }]
|
||||
]);
|
||||
const screenPlayerDeviceIds = new Map([
|
||||
['demo-conference', ['player-a', 'player-b', 'player-a', 'player-missing']],
|
||||
['other-screen', ['player-c']]
|
||||
]);
|
||||
|
||||
const targets = resolveScreenCommandTargets('demo-conference', playerSockets, screenPlayerDeviceIds);
|
||||
|
||||
assert.deepEqual(targets.map(function (target) {
|
||||
return target.deviceId;
|
||||
}), ['player-a']);
|
||||
});
|
||||
Reference in New Issue
Block a user