Stand up a fake daemon that emits a valid hello line on connect.
(version: string)
| 31 | |
| 32 | /** Stand up a fake daemon that emits a valid hello line on connect. */ |
| 33 | async function fakeDaemon(version: string): Promise<{ sockPath: string; server: net.Server }> { |
| 34 | const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'cg-proxy-')); |
| 35 | const sockPath = path.join(dir, 'd.sock'); |
| 36 | const server = net.createServer((socket) => { |
| 37 | const hello = { codegraph: version, pid: process.pid, socketPath: sockPath, protocol: 1 }; |
| 38 | socket.write(JSON.stringify(hello) + '\n'); |
| 39 | }); |
| 40 | await new Promise<void>((resolve) => server.listen(sockPath, resolve)); |
| 41 | cleanups.push(() => server.close()); |
| 42 | cleanups.push(() => { try { fs.rmSync(dir, { recursive: true, force: true }); } catch { /* ignore */ } }); |
| 43 | return { sockPath, server }; |
| 44 | } |
| 45 | |
| 46 | describe('connectWithHello — socket is never left without an error listener (#974)', () => { |
| 47 | it.runIf(process.platform !== 'win32')('returns a socket that has an error listener and never throws on error', async () => { |
no test coverage detected