11cb0ef41Sopenharmony_ci'use strict'; 21cb0ef41Sopenharmony_ciconst common = require('../common'); 31cb0ef41Sopenharmony_ciconst assert = require('assert'); 41cb0ef41Sopenharmony_ciconst repl = require('repl'); 51cb0ef41Sopenharmony_ci 61cb0ef41Sopenharmony_ci{ 71cb0ef41Sopenharmony_ci let evalCalledWithExpectedArgs = false; 81cb0ef41Sopenharmony_ci 91cb0ef41Sopenharmony_ci const options = { 101cb0ef41Sopenharmony_ci eval: common.mustCall((cmd, context) => { 111cb0ef41Sopenharmony_ci // Assertions here will not cause the test to exit with an error code 121cb0ef41Sopenharmony_ci // so set a boolean that is checked later instead. 131cb0ef41Sopenharmony_ci evalCalledWithExpectedArgs = (cmd === '\n'); 141cb0ef41Sopenharmony_ci }) 151cb0ef41Sopenharmony_ci }; 161cb0ef41Sopenharmony_ci 171cb0ef41Sopenharmony_ci const r = repl.start(options); 181cb0ef41Sopenharmony_ci 191cb0ef41Sopenharmony_ci try { 201cb0ef41Sopenharmony_ci // Empty strings should be sent to the repl's eval function 211cb0ef41Sopenharmony_ci r.write('\n'); 221cb0ef41Sopenharmony_ci } finally { 231cb0ef41Sopenharmony_ci r.write('.exit\n'); 241cb0ef41Sopenharmony_ci } 251cb0ef41Sopenharmony_ci 261cb0ef41Sopenharmony_ci assert(evalCalledWithExpectedArgs); 271cb0ef41Sopenharmony_ci} 28