From a933ea98861816373d9fa235e2659ec6b714391c Mon Sep 17 00:00:00 2001 From: MURAKAMI Masahiko Date: Fri, 22 Apr 2022 16:28:42 +0900 Subject: [PATCH 1/3] test: improve `lib/internal/webstreams/readablestream.js` coverage --- .../test-whatwg-readablebytestream.js | 21 ++++++++++++++++++ test/parallel/test-whatwg-readablestream.js | 22 +++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/test/parallel/test-whatwg-readablebytestream.js b/test/parallel/test-whatwg-readablebytestream.js index 83ec85fae61405..bfbede2fb9eb37 100644 --- a/test/parallel/test-whatwg-readablebytestream.js +++ b/test/parallel/test-whatwg-readablebytestream.js @@ -65,6 +65,9 @@ const { defaultReader.releaseLock(); const byobReader = r.getReader({ mode: 'byob' }); assert(byobReader instanceof ReadableStreamBYOBReader); + assert.match( + inspect(byobReader, { depth: 0 }), + /ReadableStreamBYOBReader/); } class Source { @@ -209,9 +212,11 @@ class Source { reader.releaseLock(); assert.rejects(reader.read(new Uint8Array(10)), { code: 'ERR_INVALID_STATE', + message: 'Invalid state: The reader is not attached to a stream', }); assert.rejects(reader.cancel(), { code: 'ERR_INVALID_STATE', + message: 'Invalid state: The reader is not attached to a stream', }); } @@ -227,9 +232,25 @@ class Source { controller.close(); assert.throws(() => controller.enqueue(new Uint8Array(10)), { code: 'ERR_INVALID_STATE', + message: 'Invalid state: ReadableStream is already closed', }); assert.throws(() => controller.close(), { code: 'ERR_INVALID_STATE', + message: 'Invalid state: ReadableStream is already closed', + }); +} + +{ + let controller; + new ReadableStream({ + type: 'bytes', + start(c) { controller = c; } + }); + controller.enqueue(new Uint8Array(10)); + controller.close(); + assert.throws(() => controller.enqueue(new Uint8Array(10)), { + code: 'ERR_INVALID_STATE', + message: 'Invalid state: Controller is already closed', }); } diff --git a/test/parallel/test-whatwg-readablestream.js b/test/parallel/test-whatwg-readablestream.js index cef3eca6ed2733..e602a1bea00a58 100644 --- a/test/parallel/test-whatwg-readablestream.js +++ b/test/parallel/test-whatwg-readablestream.js @@ -32,6 +32,7 @@ const { readableStreamDefaultControllerCanCloseOrEnqueue, readableByteStreamControllerClose, readableByteStreamControllerRespond, + readableStreamReaderGenericRelease, } = require('internal/webstreams/readablestream'); const { @@ -371,6 +372,24 @@ assert.throws(() => { }); } +{ + const stream = new ReadableStream(); + const iterable = stream.values(); + readableStreamReaderGenericRelease(stream[kState].reader); + assert.rejects(iterable.next(), { + code: 'ERR_INVALID_STATE', + }); +} + +{ + const stream = new ReadableStream(); + const iterable = stream.values(); + readableStreamReaderGenericRelease(stream[kState].reader); + assert.rejects(iterable.return(), { + code: 'ERR_INVALID_STATE', + }); +} + { const stream = new ReadableStream({ start(controller) { @@ -1357,6 +1376,9 @@ class Source { assert.throws(() => ReadableStream.prototype.tee.call({}), { code: 'ERR_INVALID_THIS', }); + assert.throws(() => ReadableStream.prototype.values.call({}), { + code: 'ERR_INVALID_THIS', + }); assert.throws(() => ReadableStream.prototype[kTransfer].call({}), { code: 'ERR_INVALID_THIS', }); From 293c6fc39f25629dd4f82e034372df89296e9f7d Mon Sep 17 00:00:00 2001 From: MURAKAMI Masahiko Date: Fri, 22 Apr 2022 22:01:07 +0900 Subject: [PATCH 2/3] test: change that checking only the `code` property --- test/parallel/test-whatwg-readablebytestream.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/test/parallel/test-whatwg-readablebytestream.js b/test/parallel/test-whatwg-readablebytestream.js index bfbede2fb9eb37..6b305a0d8365f2 100644 --- a/test/parallel/test-whatwg-readablebytestream.js +++ b/test/parallel/test-whatwg-readablebytestream.js @@ -212,11 +212,9 @@ class Source { reader.releaseLock(); assert.rejects(reader.read(new Uint8Array(10)), { code: 'ERR_INVALID_STATE', - message: 'Invalid state: The reader is not attached to a stream', }); assert.rejects(reader.cancel(), { code: 'ERR_INVALID_STATE', - message: 'Invalid state: The reader is not attached to a stream', }); } @@ -232,11 +230,9 @@ class Source { controller.close(); assert.throws(() => controller.enqueue(new Uint8Array(10)), { code: 'ERR_INVALID_STATE', - message: 'Invalid state: ReadableStream is already closed', }); assert.throws(() => controller.close(), { code: 'ERR_INVALID_STATE', - message: 'Invalid state: ReadableStream is already closed', }); } @@ -250,7 +246,6 @@ class Source { controller.close(); assert.throws(() => controller.enqueue(new Uint8Array(10)), { code: 'ERR_INVALID_STATE', - message: 'Invalid state: Controller is already closed', }); } From 84e874946749395f9e902e5e06f87e7d5008e600 Mon Sep 17 00:00:00 2001 From: MURAKAMI Masahiko Date: Fri, 22 Apr 2022 22:42:20 +0900 Subject: [PATCH 3/3] test: check that promises of `assert.rejects` is resolved --- test/parallel/test-whatwg-readablestream.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/parallel/test-whatwg-readablestream.js b/test/parallel/test-whatwg-readablestream.js index e602a1bea00a58..1bb53d5286c348 100644 --- a/test/parallel/test-whatwg-readablestream.js +++ b/test/parallel/test-whatwg-readablestream.js @@ -378,7 +378,7 @@ assert.throws(() => { readableStreamReaderGenericRelease(stream[kState].reader); assert.rejects(iterable.next(), { code: 'ERR_INVALID_STATE', - }); + }).then(common.mustCall()); } { @@ -387,7 +387,7 @@ assert.throws(() => { readableStreamReaderGenericRelease(stream[kState].reader); assert.rejects(iterable.return(), { code: 'ERR_INVALID_STATE', - }); + }).then(common.mustCall()); } {