fix(test): stabilize system SSH transport integration

This commit is contained in:
Brennan Benson
2026-07-30 13:21:48 -07:00
parent d94ed85c24
commit db963792d2
@@ -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(