| // Flags: --expose-internals |
| 'use strict'; |
| |
| require('../common'); |
| const assert = require('assert'); |
| const WrapStream = require('internal/js_stream_socket'); |
| const Stream = require('stream'); |
| |
| class FakeStream extends Stream { |
| constructor() { |
| super(); |
| this._paused = false; |
| } |
| |
| pause() { |
| this._paused = true; |
| } |
| |
| resume() { |
| this._paused = false; |
| } |
| |
| isPaused() { |
| return this._paused; |
| } |
| } |
| |
| const fakeStreamObj = new FakeStream(); |
| const wrappedStream = new WrapStream(fakeStreamObj); |
| |
| // Resume by wrapped stream upon construction |
| assert.strictEqual(fakeStreamObj.isPaused(), false); |
| |
| fakeStreamObj.pause(); |
| |
| assert.strictEqual(fakeStreamObj.isPaused(), true); |
| |
| fakeStreamObj.resume(); |
| |
| assert.strictEqual(wrappedStream.readStop(), 0); |
| |
| assert.strictEqual(fakeStreamObj.isPaused(), true); |