mirror of
https://github.com/nodejs/node.git
synced 2025-08-15 13:48:44 +02:00

refactor the test/parallel/test-repl-save-load.js file by: - making the tests in the file self-contained (instead of all of them sharing the same REPL instance and constantly calling `.clear` on it) - clearly separating and commenting the various tests to make clearer what is being tested PR-URL: https://github.com/nodejs/node/pull/58715 Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
38 lines
990 B
JavaScript
38 lines
990 B
JavaScript
'use strict';
|
|
|
|
const common = require('../common');
|
|
const ArrayStream = require('../common/arraystream');
|
|
|
|
const assert = require('node:assert');
|
|
const repl = require('node:repl');
|
|
|
|
const tmpdir = require('../common/tmpdir');
|
|
tmpdir.refresh();
|
|
|
|
// Test for the appropriate handling of cases in which REPL saves fail
|
|
|
|
const input = new ArrayStream();
|
|
const output = new ArrayStream();
|
|
|
|
const replServer = repl.start({
|
|
prompt: '',
|
|
input,
|
|
output,
|
|
allowBlockingCompletions: true,
|
|
});
|
|
|
|
// Some errors are passed to the domain, but do not callback
|
|
replServer._domain.on('error', assert.ifError);
|
|
|
|
// NUL (\0) is disallowed in filenames in UNIX-like operating systems and
|
|
// Windows so we can use that to test failed saves.
|
|
const invalidFilePath = tmpdir.resolve('\0\0\0\0\0');
|
|
|
|
output.write = common.mustCall(function(data) {
|
|
assert.strictEqual(data, `Failed to save: ${invalidFilePath}\n`);
|
|
output.write = () => {};
|
|
});
|
|
|
|
input.run([`.save ${invalidFilePath}`]);
|
|
|
|
replServer.close();
|