Add web-platform test for WebTransport close() without awaiting ready
Differential Revision: https://phabricator.services.mozilla.com/D178067
bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1831173
gecko-commit: d2675b33dd714bbed080f471a8ccacfb36ea4f19
gecko-reviewers: valentin
diff --git a/webtransport/close.https.any.js b/webtransport/close.https.any.js
index de67503..77b3055 100644
--- a/webtransport/close.https.any.js
+++ b/webtransport/close.https.any.js
@@ -29,6 +29,19 @@
}, 'close');
promise_test(async t => {
+ const wt = new WebTransport(webtransport_url('echo.py'));
+ wt.close();
+ try {
+ await wt.closed;
+ } catch(e) {
+ await promise_rejects_exactly(t, e, wt.ready, 'ready promise should be rejected');
+ assert_true(e instanceof WebTransportError);
+ assert_equals(e.source, 'session', 'source');
+ assert_equals(e.streamErrorCode, null, 'streamErrorCode');
+ }
+}, 'close without waiting for ready');
+
+promise_test(async t => {
const id = token();
const wt = new WebTransport(webtransport_url(`client-close.py?token=${id}`));
add_completion_callback(() => wt.close());