From db963792d22dd5618c90bfa24c4804949166b237 Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Thu, 30 Jul 2026 13:21:48 -0700 Subject: [PATCH] fix(test): stabilize system SSH transport integration --- .../ssh-system-transport.integration.test.ts | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/ssh/ssh-system-transport.integration.test.ts b/src/main/ssh/ssh-system-transport.integration.test.ts index 33e5fb3c80d..2c4416c42c8 100644 --- a/src/main/ssh/ssh-system-transport.integration.test.ts +++ b/src/main/ssh/ssh-system-transport.integration.test.ts @@ -54,6 +54,8 @@ exec /bin/sh -c "$cmd" } function writeFakeRelay(dir: string): void { + writeFileSync(join(dir, 'relay-watcher.js'), '') + writeFileSync(join(dir, 'managed-hook-runtime.js'), '') writeFileSync( join(dir, 'relay.js'), ` @@ -94,9 +96,11 @@ function serve(socket) { if (process.argv.includes('--detached')) { try { fs.unlinkSync(sockPath); } catch {} - const server = net.createServer(serve); + const server = net.createServer((socket) => { + serve(socket); + server.close(); + }); server.listen(sockPath); - setTimeout(() => process.exit(0), 20000).unref(); } else if (process.argv.includes('--connect')) { process.stdout.write(sentinel); let buffer = Buffer.alloc(0); @@ -137,12 +141,15 @@ function createRelayTree(root: string, remoteHome: string): void { } const remoteDir = join(remoteHome, '.orca-remote', `relay-${RELAY_VERSION}`) - mkdirSync(join(remoteDir, 'node_modules', 'node-pty'), { recursive: true }) + mkdirSync(join(remoteDir, 'node_modules', 'node-pty', 'lib'), { recursive: true }) mkdirSync(join(remoteDir, 'node_modules', '@parcel', 'watcher'), { recursive: true }) writeFileSync(join(remoteDir, 'node_modules', 'node-pty', 'index.js'), '') + writeFileSync( + join(remoteDir, 'node_modules', 'node-pty', 'lib', 'utils.js'), + 'exports.loadNativeModule = () => ({})\n' + ) writeFileSync(join(remoteDir, 'node_modules', '@parcel', 'watcher', 'index.js'), '') writeFileSync(join(remoteDir, '.install-complete'), '') - writeFileSync(join(remoteDir, 'managed-hook-runtime.js'), '') writeFakeRelay(remoteDir) } @@ -205,10 +212,13 @@ describe('system SSH transport integration', () => { 'deploys and speaks relay RPC over a system ssh process for ProxyUseFdpass targets', async () => { const conn = new SshConnection(makeTarget(), { onStateChange: vi.fn() }) + const onProgress = vi.fn() await conn.connect() expect(conn.usesSystemSshTransport()).toBe(true) - const result = await deployAndLaunchRelay(conn, undefined, 60, makeTarget().id) + const result = await deployAndLaunchRelay(conn, onProgress, 60, makeTarget().id) + expect(onProgress).not.toHaveBeenCalledWith('Uploading relay...') + expect(onProgress).not.toHaveBeenCalledWith('Installing native dependencies...') const mux = new SshChannelMultiplexer(result.transport) try { await expect(mux.request('session.resolveHome', { path: '~' })).resolves.toBe(