From cb64cf3ce2ea46883fa8bc2b4242dfd07e4551e5 Mon Sep 17 00:00:00 2001 From: Kitson Kelly Date: Thu, 16 Apr 2020 00:10:49 +1000 Subject: Add support for AbortController/AbortSignal (#4757) --- cli/js/tests/abort_controller_test.ts | 56 +++++++++++++++++++++++++++++++++++ cli/js/tests/unit_tests.ts | 1 + 2 files changed, 57 insertions(+) create mode 100644 cli/js/tests/abort_controller_test.ts (limited to 'cli/js/tests') diff --git a/cli/js/tests/abort_controller_test.ts b/cli/js/tests/abort_controller_test.ts new file mode 100644 index 000000000..ecc1abb88 --- /dev/null +++ b/cli/js/tests/abort_controller_test.ts @@ -0,0 +1,56 @@ +import { unitTest, assert, assertEquals } from "./test_util.ts"; + +unitTest(function basicAbortController() { + const controller = new AbortController(); + assert(controller); + const { signal } = controller; + assert(signal); + assertEquals(signal.aborted, false); + controller.abort(); + assertEquals(signal.aborted, true); +}); + +unitTest(function signalCallsOnabort() { + const controller = new AbortController(); + const { signal } = controller; + let called = false; + signal.onabort = (evt): void => { + assert(evt); + assertEquals(evt.type, "abort"); + called = true; + }; + controller.abort(); + assert(called); +}); + +unitTest(function signalEventListener() { + const controller = new AbortController(); + const { signal } = controller; + let called = false; + signal.addEventListener("abort", function (ev) { + assert(this === signal); + assertEquals(ev.type, "abort"); + called = true; + }); + controller.abort(); + assert(called); +}); + +unitTest(function onlyAbortsOnce() { + const controller = new AbortController(); + const { signal } = controller; + let called = 0; + signal.addEventListener("abort", () => called++); + signal.onabort = (): void => { + called++; + }; + controller.abort(); + assertEquals(called, 2); + controller.abort(); + assertEquals(called, 2); +}); + +unitTest(function controllerHasProperToString() { + const actual = Object.prototype.toString.call(new AbortController()); + assertEquals(actual, "[object AbortController]"); +}); diff --git a/cli/js/tests/unit_tests.ts b/cli/js/tests/unit_tests.ts index ba3d6746a..7d7ec4821 100644 --- a/cli/js/tests/unit_tests.ts +++ b/cli/js/tests/unit_tests.ts @@ -4,6 +4,7 @@ // // Test runner automatically spawns subprocesses for each required permissions combination. +import "./abort_controller_test.ts"; import "./blob_test.ts"; import "./body_test.ts"; import "./buffer_test.ts"; -- cgit v1.2.3