diff options
Diffstat (limited to 'cli/tests/node_compat/test/parallel/test-stream3-cork-end.js')
-rw-r--r-- | cli/tests/node_compat/test/parallel/test-stream3-cork-end.js | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/cli/tests/node_compat/test/parallel/test-stream3-cork-end.js b/cli/tests/node_compat/test/parallel/test-stream3-cork-end.js deleted file mode 100644 index 52f881121..000000000 --- a/cli/tests/node_compat/test/parallel/test-stream3-cork-end.js +++ /dev/null @@ -1,98 +0,0 @@ -// 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'; -require('../common'); -const assert = require('assert'); -const stream = require('stream'); -const Writable = stream.Writable; - -// Test the buffering behavior of Writable streams. -// -// The call to cork() triggers storing chunks which are flushed -// on calling end() and the stream subsequently ended. -// -// node version target: 0.12 - -const expectedChunks = ['please', 'buffer', 'me', 'kindly']; -const inputChunks = expectedChunks.slice(0); -let seenChunks = []; -let seenEnd = false; - -const w = new Writable(); -// Let's arrange to store the chunks. -w._write = function(chunk, encoding, cb) { - // Stream end event is not seen before the last write. - assert.ok(!seenEnd); - // Default encoding given none was specified. - assert.strictEqual(encoding, 'buffer'); - - seenChunks.push(chunk); - cb(); -}; -// Let's record the stream end event. -w.on('finish', () => { - seenEnd = true; -}); - -function writeChunks(remainingChunks, callback) { - const writeChunk = remainingChunks.shift(); - let writeState; - - if (writeChunk) { - setImmediate(() => { - writeState = w.write(writeChunk); - // We were not told to stop writing. - assert.ok(writeState); - - writeChunks(remainingChunks, callback); - }); - } else { - callback(); - } -} - -// Do an initial write. -w.write('stuff'); -// The write was immediate. -assert.strictEqual(seenChunks.length, 1); -// Reset the seen chunks. -seenChunks = []; - -// Trigger stream buffering. -w.cork(); - -// Write the bufferedChunks. -writeChunks(inputChunks, () => { - // Should not have seen anything yet. - assert.strictEqual(seenChunks.length, 0); - - // Trigger flush and ending the stream. - w.end(); - - // Stream should not ended in current tick. - assert.ok(!seenEnd); - - // Buffered bytes should be seen in current tick. - assert.strictEqual(seenChunks.length, 4); - - // Did the chunks match. - for (let i = 0, l = expectedChunks.length; i < l; i++) { - const seen = seenChunks[i]; - // There was a chunk. - assert.ok(seen); - - const expected = Buffer.from(expectedChunks[i]); - // It was what we expected. - assert.ok(seen.equals(expected)); - } - - setImmediate(() => { - // Stream should have ended in next tick. - assert.ok(seenEnd); - }); -}); |