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']); });