summaryrefslogtreecommitdiff
path: root/tests/node_compat/test/parallel/test-stream-writable-clear-buffer.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/node_compat/test/parallel/test-stream-writable-clear-buffer.js')
-rw-r--r--tests/node_compat/test/parallel/test-stream-writable-clear-buffer.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/node_compat/test/parallel/test-stream-writable-clear-buffer.js b/tests/node_compat/test/parallel/test-stream-writable-clear-buffer.js
new file mode 100644
index 000000000..ee24da756
--- /dev/null
+++ b/tests/node_compat/test/parallel/test-stream-writable-clear-buffer.js
@@ -0,0 +1,42 @@
+// deno-fmt-ignore-file
+// deno-lint-ignore-file
+
+// Copyright Joyent and Node contributors. All rights reserved. MIT license.
+// Taken from Node 18.12.1
+// This file is automatically generated by `tools/node_compat/setup.ts`. Do not modify this file manually.
+
+'use strict';
+
+// This test ensures that the _writeableState.bufferedRequestCount and
+// the actual buffered request count are the same.
+
+const common = require('../common');
+const Stream = require('stream');
+const assert = require('assert');
+
+class StreamWritable extends Stream.Writable {
+ constructor() {
+ super({ objectMode: true });
+ }
+
+ // Refs: https://github.com/nodejs/node/issues/6758
+ // We need a timer like on the original issue thread.
+ // Otherwise the code will never reach our test case.
+ _write(chunk, encoding, cb) {
+ setImmediate(cb);
+ }
+}
+
+const testStream = new StreamWritable();
+testStream.cork();
+
+for (let i = 1; i <= 5; i++) {
+ testStream.write(i, common.mustCall(() => {
+ assert.strictEqual(
+ testStream._writableState.bufferedRequestCount,
+ testStream._writableState.getBuffer().length
+ );
+ }));
+}
+
+testStream.end();