'use strict'; | |
if (self.importScripts) { | |
self.importScripts('/resources/testharness.js'); | |
} | |
promise_test(() => { | |
let isDone = false; | |
const ws = new WritableStream( | |
{ | |
write() { | |
return new Promise(resolve => { | |
setTimeout(() => { | |
isDone = true; | |
resolve(); | |
}, 200); | |
}); | |
}, | |
close() { | |
assert_true(isDone, 'close is only called once the promise has been resolved'); | |
} | |
}, | |
new ByteLengthQueuingStrategy({ highWaterMark: 1024 * 16 }) | |
); | |
const writer = ws.getWriter(); | |
writer.write({ byteLength: 1024 }); | |
return writer.close(); | |
}, 'Closing a writable stream with in-flight writes below the high water mark delays the close call properly'); | |
done(); |