mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
test: add tests for options.fs in fs streams
PR-URL: https://github.com/nodejs/node/pull/33185 Reviewed-By: Adrian Estrada <edsadr@gmail.com> Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
This commit is contained in:
committed by
Juan José Arboleda
parent
c81e5f699e
commit
39ff64756b
73
test/parallel/test-fs-stream-fs-options.js
Normal file
73
test/parallel/test-fs-stream-fs-options.js
Normal file
@@ -0,0 +1,73 @@
|
||||
'use strict';
|
||||
|
||||
require('../common');
|
||||
const fixtures = require('../common/fixtures');
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
const assert = require('assert');
|
||||
|
||||
const tmpdir = require('../common/tmpdir');
|
||||
tmpdir.refresh();
|
||||
|
||||
const streamOpts = ['open', 'close'];
|
||||
const writeStreamOptions = [...streamOpts, 'write'];
|
||||
const readStreamOptions = [...streamOpts, 'read'];
|
||||
const originalFs = { fs };
|
||||
|
||||
{
|
||||
const file = path.join(tmpdir.path, 'write-end-test0.txt');
|
||||
|
||||
writeStreamOptions.forEach((fn) => {
|
||||
const overrideFs = Object.assign({}, originalFs.fs, { [fn]: null });
|
||||
if (fn === 'write') overrideFs.writev = null;
|
||||
|
||||
const opts = {
|
||||
fs: overrideFs
|
||||
};
|
||||
assert.throws(
|
||||
() => fs.createWriteStream(file, opts), {
|
||||
code: 'ERR_INVALID_ARG_TYPE',
|
||||
name: 'TypeError',
|
||||
message: `The "options.fs.${fn}" property must be of type function. ` +
|
||||
'Received null'
|
||||
},
|
||||
`createWriteStream options.fs.${fn} should throw if isn't a function`
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
{
|
||||
const file = path.join(tmpdir.path, 'write-end-test0.txt');
|
||||
const overrideFs = Object.assign({}, originalFs.fs, { writev: 'not a fn' });
|
||||
const opts = {
|
||||
fs: overrideFs
|
||||
};
|
||||
assert.throws(
|
||||
() => fs.createWriteStream(file, opts), {
|
||||
code: 'ERR_INVALID_ARG_TYPE',
|
||||
name: 'TypeError',
|
||||
message: 'The "options.fs.writev" property must be of type function. ' +
|
||||
'Received type string (\'not a fn\')'
|
||||
},
|
||||
'createWriteStream options.fs.writev should throw if isn\'t a function'
|
||||
);
|
||||
}
|
||||
|
||||
{
|
||||
const file = fixtures.path('x.txt');
|
||||
readStreamOptions.forEach((fn) => {
|
||||
const overrideFs = Object.assign({}, originalFs.fs, { [fn]: null });
|
||||
const opts = {
|
||||
fs: overrideFs
|
||||
};
|
||||
assert.throws(
|
||||
() => fs.createReadStream(file, opts), {
|
||||
code: 'ERR_INVALID_ARG_TYPE',
|
||||
name: 'TypeError',
|
||||
message: `The "options.fs.${fn}" property must be of type function. ` +
|
||||
'Received null'
|
||||
},
|
||||
`createReadStream options.fs.${fn} should throw if isn't a function`
|
||||
);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user