summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/scheduler/task-controller-abort-completed-tasks.any.js
blob: fc96038e640e9e298181a8f752ec869a9f373cad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// META: title=Scheduler: Aborting Completed Tasks is a No-op
// META: global=window,worker
'use strict';

promise_test(async t => {
  const controller1 = new TaskController();
  const controller2 = new TaskController();

  await scheduler.postTask(() => {}, {signal: controller1.signal});

  const task = scheduler.postTask(() => {}, {signal: controller2.signal});
  controller2.abort();
  await promise_rejects_dom(t, 'AbortError', task);

  // The tasks associated with these controllers have completed, so this should
  // not lead to any unhandled rejections.
  controller1.abort();
  controller2.abort();
}, 'Aborting completed tasks should be a no-op.');