From 9fb4931a95e551c689d4f8ed5d7304f64aafc4d0 Mon Sep 17 00:00:00 2001 From: Ross Weir <29697678+ross-weir@users.noreply.github.com> Date: Tue, 27 Oct 2020 09:22:03 +1100 Subject: fix(op_crates/web): Expose event properties in console output (#8103) Fixes #8073 --- cli/rt/27_websocket.js | 6 +++--- cli/tests/unit/event_test.ts | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 3 deletions(-) (limited to 'cli') diff --git a/cli/rt/27_websocket.js b/cli/rt/27_websocket.js index 98d3a21e6..c0790d14d 100644 --- a/cli/rt/27_websocket.js +++ b/cli/rt/27_websocket.js @@ -61,7 +61,7 @@ }).then(() => { this.#readyState = CLOSED; - const errEvent = new Event("error"); + const errEvent = new ErrorEvent("error"); errEvent.target = this; this.onerror?.(errEvent); this.dispatchEvent(errEvent); @@ -84,7 +84,7 @@ } else { this.#readyState = CLOSED; - const errEvent = new Event("error"); + const errEvent = new ErrorEvent("error"); errEvent.target = this; this.onerror?.(errEvent); this.dispatchEvent(errEvent); @@ -289,7 +289,7 @@ } else if (message.type === "error") { this.#readyState = CLOSED; - const errorEv = new Event("error"); + const errorEv = new ErrorEvent("error"); errorEv.target = this; this.onerror?.(errorEv); this.dispatchEvent(errorEv); diff --git a/cli/tests/unit/event_test.ts b/cli/tests/unit/event_test.ts index 5c8766b36..d624a54a5 100644 --- a/cli/tests/unit/event_test.ts +++ b/cli/tests/unit/event_test.ts @@ -92,3 +92,41 @@ unitTest(function eventIsTrusted(): void { assertEquals(desc1!.get, desc2!.get); }); + +unitTest(function eventInspectOutput(): void { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const cases: Array<[any, (event: any) => string]> = [ + [ + new Event("test"), + (event: Event) => + `Event {\n bubbles: false,\n cancelable: false,\n composed: false,\n currentTarget: null,\n defaultPrevented: false,\n eventPhase: 0,\n target: null,\n timeStamp: ${event.timeStamp},\n type: "test"\n}`, + ], + [ + new ErrorEvent("error"), + (event: Event) => + `ErrorEvent {\n bubbles: false,\n cancelable: false,\n composed: false,\n currentTarget: null,\n defaultPrevented: false,\n eventPhase: 0,\n target: null,\n timeStamp: ${event.timeStamp},\n type: "error",\n message: "",\n filename: "",\n lineno: 0,\n colno: 0,\n error: null\n}`, + ], + [ + new CloseEvent("close"), + (event: Event) => + `CloseEvent {\n bubbles: false,\n cancelable: false,\n composed: false,\n currentTarget: null,\n defaultPrevented: false,\n eventPhase: 0,\n target: null,\n timeStamp: ${event.timeStamp},\n type: "close",\n wasClean: false,\n code: 0,\n reason: ""\n}`, + ], + [ + new CustomEvent("custom"), + (event: Event) => + `CustomEvent {\n bubbles: false,\n cancelable: false,\n composed: false,\n currentTarget: null,\n defaultPrevented: false,\n eventPhase: 0,\n target: null,\n timeStamp: ${event.timeStamp},\n type: "custom",\n detail: undefined\n}`, + ], + [ + new ProgressEvent("progress"), + (event: Event) => + `ProgressEvent {\n bubbles: false,\n cancelable: false,\n composed: false,\n currentTarget: null,\n defaultPrevented: false,\n eventPhase: 0,\n target: null,\n timeStamp: ${event.timeStamp},\n type: "progress",\n lengthComputable: false,\n loaded: 0,\n total: 0\n}`, + ], + ]; + + for (const [event, outputProvider] of cases) { + assertEquals( + event[Symbol.for("Deno.customInspect")](), + outputProvider(event), + ); + } +}); -- cgit v1.2.3