From f6a74345d1caa27209a81c7a9724db283b0fc84b Mon Sep 17 00:00:00 2001 From: Prince J Wesley Date: Wed, 17 Aug 2016 21:04:52 +0530 Subject: [PATCH] repl: Failed to save editor mode text in `.save` Fixes: https://github.com/nodejs/node/issues/8142 PR-URL: https://github.com/nodejs/node/pull/8145 Reviewed-By: James M Snell Reviewed-By: Anna Henningsen --- lib/repl.js | 1 + test/parallel/test-repl-.save.load.js | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/lib/repl.js b/lib/repl.js index e57b23946bb..1d678e67114 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -471,6 +471,7 @@ function REPLServer(prompt, if (self.editorMode) { self.bufferedCommand += cmd + '\n'; + self.memory(cmd); return; } diff --git a/test/parallel/test-repl-.save.load.js b/test/parallel/test-repl-.save.load.js index b9c5bc88afa..247f359e829 100644 --- a/test/parallel/test-repl-.save.load.js +++ b/test/parallel/test-repl-.save.load.js @@ -29,6 +29,26 @@ putIn.run(['.save ' + saveFileName]); // the file should have what I wrote assert.equal(fs.readFileSync(saveFileName, 'utf8'), testFile.join('\n') + '\n'); +{ + // save .editor mode code + const cmds = [ + 'function testSave() {', + 'return "saved";', + '}' + ]; + const putIn = new common.ArrayStream(); + const replServer = repl.start('', putIn); + + putIn.run(['.editor']); + putIn.run(cmds); + replServer.write('', {ctrl: true, name: 'd'}); + + putIn.run([`.save ${saveFileName}`]); + replServer.close(); + assert.strictEqual(fs.readFileSync(saveFileName, 'utf8'), + `${cmds.join('\n')}\n`); +} + // make sure that the REPL data is "correct" // so when I load it back I know I'm good testMe.complete('inner.o', function(error, data) {