Release v2.12.0
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
const test = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
const crypto = require('crypto');
|
||||
|
||||
const { registerPlayerControlSyncTask } = require('../src/web/lib/background-tasks/tasks-scheduled/player-control-sync');
|
||||
|
||||
test('player control sync sends minimized authorization data to remote players only', async () => {
|
||||
let task = null;
|
||||
const forwarded = [];
|
||||
registerPlayerControlSyncTask({
|
||||
pool: {
|
||||
async query() {
|
||||
return [[{
|
||||
username: 'operator',
|
||||
password_hash: 'hash',
|
||||
password_salt: 'salt'
|
||||
}]];
|
||||
}
|
||||
},
|
||||
common: {
|
||||
async fetchPlayerRegistrations() {
|
||||
return [
|
||||
{ identifier: 'local', internal_base_url: 'http://player:8081' },
|
||||
{ identifier: 'remote', internal_base_url: 'http://remote-player:8081' }
|
||||
];
|
||||
}
|
||||
},
|
||||
backgroundTaskQueue: {
|
||||
registerRecurringTask(value) {
|
||||
task = value;
|
||||
}
|
||||
},
|
||||
localPlayerInternalUrl: 'http://player:8081',
|
||||
forwardPlayerCommandToDevice: async function (deviceId, payload) {
|
||||
forwarded.push({ deviceId, payload });
|
||||
}
|
||||
});
|
||||
|
||||
assert.equal(task.intervalMs, 15 * 60 * 1000);
|
||||
await task.run();
|
||||
assert.deepEqual(forwarded, [{
|
||||
deviceId: 'remote',
|
||||
payload: {
|
||||
command: 'sync-local-control',
|
||||
users: [{
|
||||
username_hash: crypto.createHash('sha256').update('operator').digest('hex'),
|
||||
password_hash: 'hash',
|
||||
password_salt: 'salt'
|
||||
}]
|
||||
}
|
||||
}]);
|
||||
});
|
||||
Reference in New Issue
Block a user