- From: Takeshi Yoshino <notifications@github.com>
- Date: Tue, 11 Oct 2016 00:24:27 -0700
- To: whatwg/streams <streams@noreply.github.com>
- Message-ID: <whatwg/streams/pull/529/review/3621598@github.com>
tyoshino commented on this pull request.
lgtm
> + return closePromise.then(value => assert_equals(value, undefined, 'fulfillment value must be undefined'));
+}, 'fulfillment value of ws.close() call must be undefined even if the underlying sink returns a non-undefined ' +
+ 'value');
+
+async_test(t => {
+ const thrownError = new Error('throw me');
+ const ws = new WritableStream({
+ close() {
+ throw thrownError;
+ }
+ });
+
+ const writer = ws.getWriter();
+
+ promise_rejects(
+ t, thrownError, writer.close(), 'close promise', 'close promise should be rejected with the thrown error');
remove the 3rd argument as testharness.js's promise_rejects doesn't take it.
> +
+async_test(t => {
+ const thrownError = new Error('throw me');
+ const ws = new WritableStream({
+ close() {
+ throw thrownError;
+ }
+ });
+
+ const writer = ws.getWriter();
+
+ promise_rejects(
+ t, thrownError, writer.close(), 'close promise', 'close promise should be rejected with the thrown error');
+
+ setTimeout(() => {
+ promise_rejects(t, thrownError, writer.closed, 'closed', 'closed should stay rejected');
ditto
> + const ws = new WritableStream({
+ start(c) {
+ controller = c;
+ },
+ close() {
+ return new Promise(resolve => setTimeout(resolve, 50));
+ }
+ });
+
+ const writer = ws.getWriter();
+
+ writer.close();
+ setTimeout(() => controller.error(passedError), 10);
+
+ promise_rejects(
+ t, passedError, writer.closed, 'closed promise', 'closed promise should be rejected with the passed error');
ditto
> + },
+ close() {
+ return new Promise(resolve => setTimeout(resolve, 50));
+ }
+ });
+
+ const writer = ws.getWriter();
+
+ writer.close();
+ setTimeout(() => controller.error(passedError), 10);
+
+ promise_rejects(
+ t, passedError, writer.closed, 'closed promise', 'closed promise should be rejected with the passed error');
+
+ setTimeout(() => {
+ promise_rejects(t, passedError, writer.closed, 'closed', 'closed should stay rejected');
ditto
> +async_test(t => {
+ const passedError = new Error('error me');
+ let controller;
+ const ws = new WritableStream({
+ start(c) {
+ controller = c;
+ },
+ close() {
+ controller.error(passedError);
+ }
+ });
+
+ const writer = ws.getWriter();
+
+ promise_rejects(
+ t, passedError, writer.close(), 'close promise', 'close promise should be rejected with the passed error');
ditto
> + const ws = new WritableStream({
+ start(c) {
+ controller = c;
+ },
+ close() {
+ controller.error(passedError);
+ }
+ });
+
+ const writer = ws.getWriter();
+
+ promise_rejects(
+ t, passedError, writer.close(), 'close promise', 'close promise should be rejected with the passed error');
+
+ setTimeout(() => {
+ promise_rejects(t, passedError, writer.closed, 'closed', 'closed should stay rejected');
ditto
--
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/529#pullrequestreview-3621598
Received on Tuesday, 11 October 2016 07:24:56 UTC