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