correctly wait until connection to a relay is established

This commit is contained in:
jiftechnify
2023-12-20 23:15:33 +09:00
committed by fiatjaf_
parent 7552a36ff2
commit b7389be5c7
2 changed files with 14 additions and 10 deletions

View File

@@ -1,15 +1,10 @@
import { test, expect, afterEach, beforeEach } from 'bun:test' import { afterEach, expect, test } from 'bun:test'
import { finalizeEvent } from './pure.ts' import { finalizeEvent, generateSecretKey, getPublicKey } from './pure.ts'
import { generateSecretKey, getPublicKey } from './pure.ts' import { Relay, relayConnect } from './relay.ts'
import { Relay } from './relay.ts'
let relay = new Relay('wss://public.relaying.io') let relay = new Relay('wss://public.relaying.io')
beforeEach(() => {
relay.connect()
})
afterEach(() => { afterEach(() => {
relay.close() relay.close()
}) })
@@ -19,7 +14,14 @@ test('connectivity', async () => {
expect(relay.connected).toBeTrue() expect(relay.connected).toBeTrue()
}) })
test('connectivity, with relayConnect()', async () => {
const relay = await relayConnect('wss://public.relaying.io')
expect(relay.connected).toBeTrue()
})
test('querying', async () => { test('querying', async () => {
await relay.connect()
let resolve1: () => void let resolve1: () => void
let resolve2: () => void let resolve2: () => void
@@ -57,6 +59,8 @@ test('querying', async () => {
}, 10000) }, 10000)
test('listening and publishing and closing', async () => { test('listening and publishing and closing', async () => {
await relay.connect()
let sk = generateSecretKey() let sk = generateSecretKey()
let pk = getPublicKey(sk) let pk = getPublicKey(sk)
var resolve1: (_: void) => void var resolve1: (_: void) => void

View File

@@ -7,9 +7,9 @@ import { Queue, normalizeURL } from './utils.ts'
import { nip42 } from './index.ts' import { nip42 } from './index.ts'
import { yieldThread } from './helpers.ts' import { yieldThread } from './helpers.ts'
export function relayConnect(url: string) { export async function relayConnect(url: string) {
const relay = new Relay(url) const relay = new Relay(url)
relay.connect() await relay.connect()
return relay return relay
} }