@cloudflare/puppeteer
Version:
Puppeteer fork for Cloudflare Browser Run (formerly Browser Rendering)
59 lines • 2.1 kB
JavaScript
;
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