mirror of
https://github.com/binaricat/Netcatty.git
synced 2026-10-09 15:58:34 +00:00
1babda6fa9
* fix(sync): retry peer unlock when the shared password becomes available * fix(sync): retain deliberate locks after availability notifications * fix(sync): preserve deliberate locks after peer password events * fix(sync): retain deliberate locks across consumer remounts * fix: address Codex review on PR #3302 * fix: address Codex review on PR #3302 * fix: address Codex review on PR #3302 * fix: address Codex review on PR #3302 * test(sync): cover pending unlock owner handoff * fix(sync): distinguish stale unlocks from invalid passwords * fix(sync): retry completed auto unlock after consumers remount * fix(sync): share auto unlock retry generation across consumers --------- Co-authored-by: netcatty-bot <308658023+netcatty-bot@users.noreply.github.com>
18 lines
856 B
JavaScript
18 lines
856 B
JavaScript
const assert = require('node:assert/strict');
|
|
const test = require('node:test');
|
|
const { EventEmitter } = require('node:events');
|
|
const { createPreloadApi } = require('./api.cjs');
|
|
|
|
test('password-availability subscription exposes no IPC payload and unsubscribes', () => {
|
|
const ipcRenderer = new EventEmitter();
|
|
const api = createPreloadApi({ ipcRenderer, webUtils: {} });
|
|
const calls = [];
|
|
const unsubscribe = api.onCloudSyncSessionPasswordAvailable((...args) => calls.push(args));
|
|
ipcRenderer.emit('netcatty:cloudSync:session:passwordAvailable', { sender: 'private' }, 'must-not-forward');
|
|
assert.deepEqual(calls, [[]]);
|
|
unsubscribe();
|
|
ipcRenderer.emit('netcatty:cloudSync:session:passwordAvailable', {});
|
|
assert.equal(calls.length, 1);
|
|
assert.equal(ipcRenderer.listenerCount('netcatty:cloudSync:session:passwordAvailable'), 0);
|
|
});
|