mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
2d4a521d58
The createInternalRepl() module accepts an options object as an argument. However, if one is provided, it overrides all of the default options. This commit applies the options object to the defaults, only changing the values that are explicitly set. PR-URL: https://github.com/nodejs/node/pull/7826 Reviewed-By: James M Snell <jasnell@gmail.com>
58 lines
1.4 KiB
JavaScript
58 lines
1.4 KiB
JavaScript
'use strict';
|
|
// Flags: --expose_internals
|
|
|
|
const common = require('../common');
|
|
|
|
if (common.isWindows) {
|
|
common.skip('Win32 uses ACLs for file permissions, ' +
|
|
'modes are always 0666 and says nothing about group/other ' +
|
|
'read access.');
|
|
return;
|
|
}
|
|
|
|
const assert = require('assert');
|
|
const path = require('path');
|
|
const fs = require('fs');
|
|
const repl = require('internal/repl');
|
|
const Duplex = require('stream').Duplex;
|
|
// Invoking the REPL should create a repl history file at the specified path
|
|
// and mode 600.
|
|
|
|
var stream = new Duplex();
|
|
stream.pause = stream.resume = function() {};
|
|
// ends immediately
|
|
stream._read = function() {
|
|
this.push(null);
|
|
};
|
|
stream._write = function(c, e, cb) {
|
|
cb();
|
|
};
|
|
stream.readable = stream.writable = true;
|
|
|
|
common.refreshTmpDir();
|
|
const replHistoryPath = path.join(common.tmpDir, '.node_repl_history');
|
|
|
|
const checkResults = common.mustCall(function(err, r) {
|
|
if (err)
|
|
throw err;
|
|
|
|
// The REPL registers 'module' and 'require' globals
|
|
common.allowGlobals(r.context.module, r.context.require);
|
|
|
|
r.input.end();
|
|
const stat = fs.statSync(replHistoryPath);
|
|
assert.strictEqual(
|
|
stat.mode & 0o777, 0o600,
|
|
'REPL history file should be mode 0600');
|
|
});
|
|
|
|
repl.createInternalRepl(
|
|
{NODE_REPL_HISTORY: replHistoryPath},
|
|
{
|
|
terminal: true,
|
|
input: stream,
|
|
output: stream
|
|
},
|
|
checkResults
|
|
);
|