29 lines
1.2 KiB
JavaScript
29 lines
1.2 KiB
JavaScript
const test = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
|
|
const { createPlayerBridgeState } = require('../src/player-bridge/connection-state');
|
|
|
|
test('bridge state merges snapshot sources and tracks device ids', () => {
|
|
const state = createPlayerBridgeState();
|
|
|
|
state.setScreenSnapshotSource('demo-screen', 'player-a', [{ clientId: 'client-1' }]);
|
|
state.setScreenSnapshotSource('demo-screen', 'player-b', [{ clientId: 'client-2' }]);
|
|
|
|
const snapshot = state.buildMergedScreenSnapshot('demo-screen');
|
|
assert.equal(snapshot.count, 2);
|
|
assert.deepEqual(snapshot.deviceIds.sort(), ['player-a', 'player-b']);
|
|
assert.equal(state.getScreenSnapshotCount('demo-screen'), 2);
|
|
});
|
|
|
|
test('bridge state clears snapshot sources by player device id', () => {
|
|
const state = createPlayerBridgeState();
|
|
|
|
state.setScreenSnapshotSource('demo-screen', 'player-a', [{ clientId: 'client-1' }]);
|
|
state.setScreenSnapshotSource('demo-screen', 'player-b', [{ clientId: 'client-2' }]);
|
|
state.clearPlayerSnapshotSources('player-a');
|
|
|
|
const snapshot = state.buildMergedScreenSnapshot('demo-screen');
|
|
assert.equal(snapshot.count, 1);
|
|
assert.deepEqual(snapshot.deviceIds, ['player-b']);
|
|
});
|