diff --git a/web-locks/signal.tentative.https.any.js b/web-locks/signal.tentative.https.any.js index cbb23df8a0567f..5a37e3ae87182e 100644 --- a/web-locks/signal.tentative.https.any.js +++ b/web-locks/signal.tentative.https.any.js @@ -29,6 +29,36 @@ promise_test(async t => { 'Request should reject with AbortError'); }, 'Passing an already aborted signal aborts'); +promise_test(async t => { + const res = uniqueName(t); + + const controller = new AbortController(); + const reason = 'My dog ate it.'; + controller.abort(reason); + + const promise = + navigator.locks.request(res, {signal: controller.signal}, + t.unreached_func('callback should not run')); + + await promise_rejects_exactly( + t, reason, promise, "Rejection should give the abort reason"); +}, 'Passing an already aborted signal rejects with the custom abort reason.'); + +promise_test(async t => { + const res = uniqueName(t); + + const controller = new AbortController(); + controller.abort(); + + const promise = + navigator.locks.request(res, {signal: controller.signal}, + t.unreached_func('callback should not run')); + + await promise_rejects_exactly( + t, controller.signal.reason, promise, + "Rejection should give the abort reason"); +}, 'Passing an already aborted signal rejects with the default abort reason.'); + promise_test(async t => { const res = uniqueName(t);