'use strict'; require('../common'); const assert = require('assert'); const fixtures = require('../common/fixtures'); const fs = require('fs'); const path = require('path'); const stream = require('stream'); const tmpdir = require('../common/tmpdir'); const firstEncoding = 'base64'; const secondEncoding = 'latin1'; const examplePath = fixtures.path('x.txt'); const dummyPath = path.join(tmpdir.path, 'x.txt'); tmpdir.refresh(); const exampleReadStream = fs.createReadStream(examplePath, { encoding: firstEncoding }); const dummyWriteStream = fs.createWriteStream(dummyPath, { encoding: firstEncoding }); exampleReadStream.pipe(dummyWriteStream).on('finish', function() { const assertWriteStream = new stream.Writable({ write: function(chunk, enc, next) { const expected = Buffer.from('xyz\n'); assert(chunk.equals(expected)); } }); assertWriteStream.setDefaultEncoding(secondEncoding); fs.createReadStream(dummyPath, { encoding: secondEncoding }).pipe(assertWriteStream); });