mirror of
https://github.com/nodejs/node.git
synced 2026-10-28 18:25:13 +08:00
Signed-off-by: Aviv Keller <me@aviv.sh> PR-URL: https://github.com/nodejs/node/pull/64034 Fixes: https://github.com/nodejs/node/issues/64523 Closes: https://github.com/nodejs/node/pull/64534 Fixes: https://github.com/nodejs/node/issues/39387 Closes: https://github.com/nodejs/node/pull/39392 Fixes: https://github.com/nodejs/node/issues/61390 Fixes: https://github.com/nodejs/node/issues/63126 Fixes: https://github.com/nodejs/node/issues/38503 Fixes: https://github.com/nodejs/node/issues/37445 Fixes: https://github.com/nodejs/node/issues/38145 Fixes: https://github.com/nodejs/node/issues/33369 Fixes: https://github.com/nodejs/node/issues/48131 Fixes: https://github.com/nodejs/node/issues/8309 Fixes: https://github.com/nodejs/node/issues/39689 Fixes: https://github.com/nodejs/node/issues/18931 Reviewed-By: Dario Piotrowicz <dario.piotrowicz@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com>
42 lines
1.0 KiB
JavaScript
42 lines
1.0 KiB
JavaScript
'use strict';
|
|
|
|
const common = require('../common');
|
|
const assert = require('node:assert');
|
|
const fs = require('node:fs');
|
|
const path = require('node:path');
|
|
const { startNewREPLServer } = require('../common/repl');
|
|
|
|
const tmpdir = require('../common/tmpdir');
|
|
tmpdir.refresh();
|
|
|
|
// Test for saving a REPL session in editor mode
|
|
|
|
const { replServer, input, run, waitForIdle } = startNewREPLServer();
|
|
|
|
const commands = [
|
|
'function testSave() {',
|
|
'return "saved";',
|
|
'}',
|
|
];
|
|
|
|
const filePath = path.resolve(tmpdir.path, 'test.save.js');
|
|
|
|
async function main() {
|
|
await run(['.editor']);
|
|
|
|
// Editor-mode lines are buffered synchronously; the evaluation is triggered
|
|
// only when editor mode ends (Ctrl+D), and that evaluation is asynchronous.
|
|
input.run(commands);
|
|
replServer.write('', { ctrl: true, name: 'd' });
|
|
await waitForIdle();
|
|
|
|
await run([`.save ${filePath}`]);
|
|
|
|
assert.strictEqual(fs.readFileSync(filePath, 'utf8'),
|
|
`${commands.join('\n')}\n`);
|
|
|
|
replServer.close();
|
|
}
|
|
|
|
main().then(common.mustCall());
|