wspromisify
Version:
Wraps your WebSockets into Promise-based class with full d.ts typings on client & server
24 lines (20 loc) • 743 B
text/typescript
import { equals } from 'pepka'
import { createNew, timeout } from '../utils'
import mockServer from '../mock/server'
import { test } from '../suite'
/** Proof of work. */
test('echo', timeout(5e3, () => new Promise<void>(async (ff, rj) => {
const {port} = await mockServer()
let to = setTimeout(() => rj('cannot create'), 2e2)
const ws = createNew({}, port)
clearTimeout(to)
to = setTimeout(() => rj('cannot ready'), 2e2)
await ws.ready()
clearTimeout(to)
const msg = {echo: true, msg: 'hello!'}
to = setTimeout(() => rj('cannot send'), 2e2)
const response = await ws.send(msg)
clearTimeout(to)
if(equals(response, msg)) ff(); else rj('echo msg is not equal.')
})
))