<!DOCTYPE html>
<script src='../../resources/testharness.js'></script>
<script src='../../resources/testharnessreport.js'></script>
<script src='resources/streams-utils.js'></script>
<script>
// This is updated till https://github.com/whatwg/streams/commit/4ba861e6f60c248060811830e11271c84b439cc3

var test1 = async_test('Closing a writable stream with in-flight writes below the high water mark delays the close call properly');
test1.step(function() {
    var isDone = false;
    var ws = new WritableStream(
        {
            write: function(chunk) {
                return new Promise(test1.step_func(function(resolve) {
                    setTimeout(test1.step_func(function() {
                        isDone = true;
                        resolve();
                    }), 500);
                }));
            },
            close: function() {
                assert_true(isDone, 'close is only called once the promise has been resolved');
                test1.done();
            }
        },
        new ByteLengthQueuingStrategy({ highWaterMark: 1024 * 16 })
    );

    ws.write({ byteLength: 1024 });
    ws.close();
});
</script>
