mirror of
https://github.com/stablyai/orca.git
synced 2026-10-20 00:03:45 +00:00
fix(test): stabilize system SSH transport integration
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user