Files
Clipboard/test/notify-sets.test.js
2026-09-12 13:59:12 +08:00

28 lines
976 B
JavaScript

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