mirror of
https://github.com/nbd-wtf/nostr-tools.git
synced 2025-12-09 16:48:50 +00:00
Improvements to enablePing() & tests (#506)
https://github.com/nbd-wtf/nostr-tools/pull/506
This commit is contained in:
@@ -117,3 +117,34 @@ test('publish timeout', async () => {
|
||||
),
|
||||
).rejects.toThrow('publish timed out')
|
||||
})
|
||||
|
||||
test('ping-pong timeout', async () => {
|
||||
const mockRelay = new MockRelay()
|
||||
const relay = new Relay(mockRelay.url, { enablePing: true })
|
||||
relay.pingTimeout = 50
|
||||
relay.pingFrequency = 50
|
||||
|
||||
let closed = false
|
||||
const closedPromise = new Promise<void>(resolve => {
|
||||
relay.onclose = () => {
|
||||
closed = true
|
||||
resolve()
|
||||
}
|
||||
})
|
||||
|
||||
await relay.connect()
|
||||
expect(relay.connected).toBeTrue()
|
||||
|
||||
// wait for the first ping to succeed
|
||||
await new Promise(resolve => setTimeout(resolve, 75))
|
||||
expect(closed).toBeFalse()
|
||||
|
||||
// now make it unresponsive
|
||||
mockRelay.unresponsive = true
|
||||
|
||||
// wait for the second ping to fail
|
||||
await closedPromise
|
||||
|
||||
expect(relay.connected).toBeFalse()
|
||||
expect(closed).toBeTrue()
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user