UNPKG

@cloudflare/puppeteer

Version:

Puppeteer fork for Cloudflare Browser Run (formerly Browser Rendering)

59 lines 2.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); /** * @license * Copyright 2024 Google Inc. * SPDX-License-Identifier: Apache-2.0 */ const node_test_1 = require("node:test"); const expect_1 = __importDefault(require("expect")); const ws_1 = require("ws"); const NodeWebSocketTransport_js_1 = require("./NodeWebSocketTransport.js"); (0, node_test_1.describe)('NodeWebSocketTransport', () => { let wss; let transport; let connection; (0, node_test_1.beforeEach)(async () => { wss = new ws_1.WebSocketServer({ port: 8080 }); wss.on('connection', c => { connection = c; }); transport = await NodeWebSocketTransport_js_1.NodeWebSocketTransport.create('ws://127.0.0.1:8080'); }); (0, node_test_1.afterEach)(() => { transport.close(); wss.close(); }); (0, node_test_1.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; (0, expect_1.default)(log).toEqual([ 'message received m1', 'microtask1 m1', 'microtask2 m1', 'message received m2', 'microtask1 m2', 'microtask2 m2', ]); }); }); //# sourceMappingURL=NodeWebSocketTransport.test.js.map