diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2020-04-16 00:10:49 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-15 10:10:49 -0400 |
commit | cb64cf3ce2ea46883fa8bc2b4242dfd07e4551e5 (patch) | |
tree | 0eeae9e1d2e5e190804cf362968be0688a161910 /cli/js/tests/abort_controller_test.ts | |
parent | 95eb6d780c2790b524dc3ad6f21958260c2dadfe (diff) |
Add support for AbortController/AbortSignal (#4757)
Diffstat (limited to 'cli/js/tests/abort_controller_test.ts')
-rw-r--r-- | cli/js/tests/abort_controller_test.ts | 56 |
1 files changed, 56 insertions, 0 deletions
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]"); +}); |