| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- "use strict";
- var __create = Object.create;
- var __defProp = Object.defineProperty;
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
- var __getOwnPropNames = Object.getOwnPropertyNames;
- var __getProtoOf = Object.getPrototypeOf;
- var __hasOwnProp = Object.prototype.hasOwnProperty;
- var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
- };
- var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
- };
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
- ));
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
- var testServerConnection_exports = {};
- __export(testServerConnection_exports, {
- TestServerConnection: () => TestServerConnection,
- WebSocketTestServerTransport: () => WebSocketTestServerTransport
- });
- module.exports = __toCommonJS(testServerConnection_exports);
- var events = __toESM(require("./events"));
- class WebSocketTestServerTransport {
- constructor(url) {
- this._ws = new WebSocket(url);
- }
- onmessage(listener) {
- this._ws.addEventListener("message", (event) => listener(event.data.toString()));
- }
- onopen(listener) {
- this._ws.addEventListener("open", listener);
- }
- onerror(listener) {
- this._ws.addEventListener("error", listener);
- }
- onclose(listener) {
- this._ws.addEventListener("close", listener);
- }
- send(data) {
- this._ws.send(data);
- }
- close() {
- this._ws.close();
- }
- }
- class TestServerConnection {
- constructor(transport) {
- this._onCloseEmitter = new events.EventEmitter();
- this._onReportEmitter = new events.EventEmitter();
- this._onStdioEmitter = new events.EventEmitter();
- this._onTestFilesChangedEmitter = new events.EventEmitter();
- this._onLoadTraceRequestedEmitter = new events.EventEmitter();
- this._onRecoverFromStepErrorEmitter = new events.EventEmitter();
- this._lastId = 0;
- this._callbacks = /* @__PURE__ */ new Map();
- this._isClosed = false;
- this.onClose = this._onCloseEmitter.event;
- this.onReport = this._onReportEmitter.event;
- this.onStdio = this._onStdioEmitter.event;
- this.onTestFilesChanged = this._onTestFilesChangedEmitter.event;
- this.onLoadTraceRequested = this._onLoadTraceRequestedEmitter.event;
- this.onRecoverFromStepError = this._onRecoverFromStepErrorEmitter.event;
- this._transport = transport;
- this._transport.onmessage((data) => {
- const message = JSON.parse(data);
- const { id, result, error, method, params } = message;
- if (id) {
- const callback = this._callbacks.get(id);
- if (!callback)
- return;
- this._callbacks.delete(id);
- if (error)
- callback.reject(new Error(error));
- else
- callback.resolve(result);
- } else {
- this._dispatchEvent(method, params);
- }
- });
- const pingInterval = setInterval(() => this._sendMessage("ping").catch(() => {
- }), 3e4);
- this._connectedPromise = new Promise((f, r) => {
- this._transport.onopen(f);
- this._transport.onerror(r);
- });
- this._transport.onclose(() => {
- this._isClosed = true;
- this._onCloseEmitter.fire();
- clearInterval(pingInterval);
- });
- }
- isClosed() {
- return this._isClosed;
- }
- async _sendMessage(method, params) {
- const logForTest = globalThis.__logForTest;
- logForTest?.({ method, params });
- await this._connectedPromise;
- const id = ++this._lastId;
- const message = { id, method, params };
- this._transport.send(JSON.stringify(message));
- return new Promise((resolve, reject) => {
- this._callbacks.set(id, { resolve, reject });
- });
- }
- _sendMessageNoReply(method, params) {
- this._sendMessage(method, params).catch(() => {
- });
- }
- _dispatchEvent(method, params) {
- if (method === "report")
- this._onReportEmitter.fire(params);
- else if (method === "stdio")
- this._onStdioEmitter.fire(params);
- else if (method === "testFilesChanged")
- this._onTestFilesChangedEmitter.fire(params);
- else if (method === "loadTraceRequested")
- this._onLoadTraceRequestedEmitter.fire(params);
- else if (method === "recoverFromStepError")
- this._onRecoverFromStepErrorEmitter.fire(params);
- }
- async initialize(params) {
- await this._sendMessage("initialize", params);
- }
- async ping(params) {
- await this._sendMessage("ping", params);
- }
- async pingNoReply(params) {
- this._sendMessageNoReply("ping", params);
- }
- async watch(params) {
- await this._sendMessage("watch", params);
- }
- watchNoReply(params) {
- this._sendMessageNoReply("watch", params);
- }
- async open(params) {
- await this._sendMessage("open", params);
- }
- openNoReply(params) {
- this._sendMessageNoReply("open", params);
- }
- async resizeTerminal(params) {
- await this._sendMessage("resizeTerminal", params);
- }
- resizeTerminalNoReply(params) {
- this._sendMessageNoReply("resizeTerminal", params);
- }
- async checkBrowsers(params) {
- return await this._sendMessage("checkBrowsers", params);
- }
- async installBrowsers(params) {
- await this._sendMessage("installBrowsers", params);
- }
- async runGlobalSetup(params) {
- return await this._sendMessage("runGlobalSetup", params);
- }
- async runGlobalTeardown(params) {
- return await this._sendMessage("runGlobalTeardown", params);
- }
- async startDevServer(params) {
- return await this._sendMessage("startDevServer", params);
- }
- async stopDevServer(params) {
- return await this._sendMessage("stopDevServer", params);
- }
- async clearCache(params) {
- return await this._sendMessage("clearCache", params);
- }
- async listFiles(params) {
- return await this._sendMessage("listFiles", params);
- }
- async listTests(params) {
- return await this._sendMessage("listTests", params);
- }
- async runTests(params) {
- return await this._sendMessage("runTests", params);
- }
- async findRelatedTestFiles(params) {
- return await this._sendMessage("findRelatedTestFiles", params);
- }
- async stopTests(params) {
- await this._sendMessage("stopTests", params);
- }
- stopTestsNoReply(params) {
- this._sendMessageNoReply("stopTests", params);
- }
- async closeGracefully(params) {
- await this._sendMessage("closeGracefully", params);
- }
- async resumeAfterStepError(params) {
- await this._sendMessage("resumeAfterStepError", params);
- }
- close() {
- try {
- this._transport.close();
- } catch {
- }
- }
- }
- // Annotate the CommonJS export names for ESM import in node:
- 0 && (module.exports = {
- TestServerConnection,
- WebSocketTestServerTransport
- });
|