update
This commit is contained in:
28
test/notify-sets.test.js
Normal file
28
test/notify-sets.test.js
Normal file
@@ -0,0 +1,28 @@
|
||||
'use strict';
|
||||
const assert = require('node:assert');
|
||||
const { createSubscribers } = require('../lib/notify-fanout.js');
|
||||
|
||||
let passed = 0;
|
||||
function check(name, fn) {
|
||||
try { fn(); console.log(' ok -', name); passed++; }
|
||||
catch (e) { console.error(' FAIL -', name, e.message); process.exitCode = 1; }
|
||||
}
|
||||
|
||||
const subs = createSubscribers();
|
||||
const wcA = { id: 'A', send: function (ch, payload) { this._last = [ch, payload]; } };
|
||||
const wcB = { id: 'B', send: function (ch, payload) { this._last = [ch, payload]; } };
|
||||
|
||||
subs.addClip(wcA);
|
||||
subs.addFav(wcB);
|
||||
|
||||
check('notifyClip only sends to clip subs', () => {
|
||||
subs.notifyClip('clips:added', { id: 1 });
|
||||
assert.deepStrictEqual(wcA._last, ['clips:added', { id: 1 }]);
|
||||
assert.strictEqual(wcB._last, undefined);
|
||||
});
|
||||
|
||||
check('notifyFav only sends to fav subs', () => {
|
||||
subs.notifyFav('favorites:changed');
|
||||
assert.strictEqual(wcA._last[0], 'clips:added', 'A untouched');
|
||||
assert.strictEqual(wcB._last[0], 'favorites:changed');
|
||||
});
|
||||
Reference in New Issue
Block a user