- From: Domenic Denicola <notifications@github.com>
- Date: Fri, 15 Sep 2017 07:17:37 +0000 (UTC)
- To: whatwg/streams <streams@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/streams/pull/795/review/62952004@github.com>
domenic approved this pull request. LGTM with a couple questions... still need to think about #794 more though. > + if (calls < 2) { + controller.enqueue('b'); + } + return 1; + }, + highWaterMark: Infinity + }); + const writer = ts.writable.getWriter(); + return Promise.all([writer.write('a'), writer.close()]) + .then(() => readableStreamToArray(ts.readable)) + .then(array => assert_array_equals(array, ['b', 'a'], 'array should contain two chunks')); +}, 'enqueue() inside size() should work'); + +// The behaviour in this test may seem strange, but it is logical. The call to controller.close() happens while the +// readable queue is still empty, so the readable transitions to the "closed" state immediately, and the chunk is left +// stranded in the readable's queue. stranded in the writable's queue, right? > + writeResolved = true; + }); + return flushAsyncEvents().then(() => { + assert_false(writeResolved); + controller.enqueue('a'); + assert_equals(calls, 1, 'size() should have been called once'); + return delay(0); + }).then(() => { + assert_true(writeResolved); + assert_equals(calls, 1, 'size() should only be called once'); + return readPromise; + }).then(({ value, done }) => { + assert_false(done, 'done should be false'); + // See https://github.com/whatwg/streams/issues/794 for why this chunk is not 'a'. + assert_equals(value, 'b', 'chunk should have been read'); + return writePromise; Maybe throw in another assert on calls? It doesn't hurt... Same in next test. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/whatwg/streams/pull/795#pullrequestreview-62952004
Received on Friday, 15 September 2017 07:18:43 UTC