fix: injectable tunnel log label, honest truncate budget comment
This commit is contained in:
1 parent
6a2706130a
commit
703df24b13
4 files changed
+42
-6
No files matched your search
@@ -248,11 +248,34 @@ describe('openTunnel', () => {
|
||||
created.push(server)
|
||||
return server
|
||||
})
|
||||
const errSpy = vi.spyOn(console, 'error').mockImplementation(() => {})
|
||||
const tunnel = await openTunnel(sshConfig({ password: 'pw' }), 'db-host', 5432)
|
||||
// A listener error after listen() resolved must not be swallowed: it
|
||||
// marks the tunnel closed so the manager can rebuild it.
|
||||
created[0].emit('error', new Error('EADDRNOTAVAIL'))
|
||||
expect(tunnel.isClosed()).toBe(true)
|
||||
// Default log label brands the diagnostic with 'ssh-tunnel:'.
|
||||
expect(errSpy).toHaveBeenCalledWith('ssh-tunnel: tunnel listener error: EADDRNOTAVAIL')
|
||||
errSpy.mockRestore()
|
||||
spy.mockRestore()
|
||||
await tunnel.close()
|
||||
})
|
||||
|
||||
it('uses a custom logLabel prefix on diagnostics', async () => {
|
||||
const created: net.Server[] = []
|
||||
const realCreateServer = net.createServer.bind(net)
|
||||
const spy = vi.spyOn(net, 'createServer').mockImplementation((handler) => {
|
||||
const server = realCreateServer(handler as (socket: net.Socket) => void)
|
||||
created.push(server)
|
||||
return server
|
||||
})
|
||||
const errSpy = vi.spyOn(console, 'error').mockImplementation(() => {})
|
||||
const tunnel = await openTunnel(sshConfig({ password: 'pw' }), 'db-host', 5432, 'dbmole')
|
||||
created[0].emit('error', new Error('EADDRNOTAVAIL'))
|
||||
expect(tunnel.isClosed()).toBe(true)
|
||||
// The injected label replaces the default prefix token.
|
||||
expect(errSpy).toHaveBeenCalledWith('dbmole: tunnel listener error: EADDRNOTAVAIL')
|
||||
errSpy.mockRestore()
|
||||
spy.mockRestore()
|
||||
await tunnel.close()
|
||||
})
|
||||
|
||||
Reference in new issue
Block a user