42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
'use strict';
|
|
|
|
const test = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
const { createRendererController } = 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'],
|
|
]);
|
|
});
|