UNPKG

@cloudflare/puppeteer

Version:

Puppeteer fork for Cloudflare Browser Run (formerly Browser Rendering)

54 lines 1.77 kB
/** * @license * Copyright 2024 Google Inc. * SPDX-License-Identifier: Apache-2.0 */ import { describe, it, beforeEach, afterEach } from 'node:test'; import expect from 'expect'; import { WebSocketServer } from 'ws'; import { NodeWebSocketTransport } from './NodeWebSocketTransport.js'; describe('NodeWebSocketTransport', () => { let wss; let transport; let connection; beforeEach(async () => { wss = new WebSocketServer({ port: 8080 }); wss.on('connection', c => { connection = c; }); transport = await NodeWebSocketTransport.create('ws://127.0.0.1:8080'); }); afterEach(() => { transport.close(); wss.close(); }); it('should dispatch messages in order handling microtasks for each message first', async () => { const log = []; const result = new Promise(resolve => { transport.onmessage = message => { log.push('message received ' + message); return Promise.resolve().then(() => { log.push('microtask1 ' + message); return Promise.resolve().then(() => { log.push('microtask2 ' + message); if (log.length === 6) { resolve(); } }); }); }; }); connection.send('m1'); connection.send('m2'); await result; expect(log).toEqual([ 'message received m1', 'microtask1 m1', 'microtask2 m1', 'message received m2', 'microtask1 m2', 'microtask2 m2', ]); }); }); //# sourceMappingURL=NodeWebSocketTransport.test.js.map