CoolFace
Apppublic

strong-tie/inbound-calls

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
upgrade.test.js54 linesDownload Raw Back to test
1'use strict'2 3const { test, skip } = require('tap')4const Fastify = require('..')5const { connect } = require('node:net')6const { once } = require('node:events')7const dns = require('node:dns').promises8 9async function setup () {10  const localAddresses = await dns.lookup('localhost', { all: true })11  if (localAddresses.length === 1) {12    skip('requires both IPv4 and IPv6')13    return14  }15 16  test('upgrade to both servers', async t => {17    t.plan(2)18    const app = Fastify()19    app.server.on('upgrade', (req, socket, head) => {20      t.pass(`upgrade event ${JSON.stringify(socket.address())}`)21      socket.end()22    })23    app.get('/', (req, res) => {24    })25    await app.listen()26    t.teardown(app.close.bind(app))27 28    {29      const client = connect(app.server.address().port, '127.0.0.1')30      client.write('GET / HTTP/1.1\r\n')31      client.write('Upgrade: websocket\r\n')32      client.write('Connection: Upgrade\r\n')33      client.write('Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==\r\n')34      client.write('Sec-WebSocket-Protocol: com.xxx.service.v1\r\n')35      client.write('Sec-WebSocket-Version: 13\r\n\r\n')36      client.write('\r\n\r\n')37      await once(client, 'close')38    }39 40    {41      const client = connect(app.server.address().port, '::1')42      client.write('GET / HTTP/1.1\r\n')43      client.write('Upgrade: websocket\r\n')44      client.write('Connection: Upgrade\r\n')45      client.write('Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==\r\n')46      client.write('Sec-WebSocket-Protocol: com.xxx.service.v1\r\n')47      client.write('Sec-WebSocket-Version: 13\r\n\r\n')48      await once(client, 'close')49    }50  })51}52 53setup()54