1// META: global=window,worker
2'use strict';
3
4promise_test(t => {
5  let isDone = false;
6  const ws = new WritableStream(
7    {
8      write() {
9        return new Promise(resolve => {
10          t.step_timeout(() => {
11            isDone = true;
12            resolve();
13          }, 200);
14        });
15      },
16
17      close() {
18        assert_true(isDone, 'close is only called once the promise has been resolved');
19      }
20    },
21    new ByteLengthQueuingStrategy({ highWaterMark: 1024 * 16 })
22  );
23
24  const writer = ws.getWriter();
25  writer.write({ byteLength: 1024 });
26
27  return writer.close();
28}, 'Closing a writable stream with in-flight writes below the high water mark delays the close call properly');
29