Files
Alta-Proxy-Tool/test/renderer-controller.test.js
peji ace4568f81
APT build checks / build-checks (push) Successful in 37s
APT build checks / build-checks (pull_request) Successful in 37s
feat: release passwordless hierarchical APT v1.2.5
2026-08-22 16:20:12 +00:00

50 lines
2.0 KiB
JavaScript

'use strict';
const test = require('node:test');
const assert = require('node:assert/strict');
const { createRendererController, shouldShowPairingOnboarding } = require('../renderer-controller');
function harness(result) {
const calls = [];
const controller = createRendererController({
disconnect: async () => result,
renderConnectionState: (state) => calls.push(['render', state]),
clearDisconnectedState: () => calls.push(['clear']),
showConnectionStatus: (message, type) => calls.push(['status', message, type]),
});
return { controller, calls };
}
test('failed disconnect retains visible connection, device, and proxy state', async () => {
const result = {
success: false,
connected: true,
activeProxies: [{ deviceId: '550e8400-e29b-41d4-a716-446655440000', processId: 4101 }],
message: 'Could not stop every active proxy. The Alta session remains connected.',
};
const { controller, calls } = harness(result);
assert.equal(await controller.disconnect(), result);
assert.deepEqual(calls, [['status', result.message, 'error']]);
});
test('successful disconnect renders disconnected state and clears device state', async () => {
const result = { success: true, connected: false, origin: null, activeProxies: [] };
const { controller, calls } = harness(result);
assert.equal(await controller.disconnect(), result);
assert.deepEqual(calls, [
['render', result],
['clear'],
['status', 'Disconnected from Alta.', 'info'],
]);
});
test('pairing onboarding is temporary but remains recoverable', () => {
assert.equal(shouldShowPairingOnboarding({ paired: false }), true);
assert.equal(shouldShowPairingOnboarding({ paired: true, secretVisible: true }), true);
assert.equal(shouldShowPairingOnboarding({ paired: true }), false);
assert.equal(shouldShowPairingOnboarding({ paired: true, secretVisible: true, connected: true }), false);
assert.equal(shouldShowPairingOnboarding({ paired: true, connected: true, manuallyOpen: true }), true);
});