0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-25 08:19:38 +01:00
nodejs/test/parallel/test-repl-reset-event.js

53 lines
1.3 KiB
JavaScript
Raw Normal View History

var common = require('../common');
common.globalCheck = false;
var assert = require('assert');
var repl = require('repl');
var Stream = require('stream');
// create a dummy stream that does nothing
var dummy = new Stream();
dummy.write = dummy.pause = dummy.resume = function(){};
dummy.readable = dummy.writable = true;
function testReset(cb) {
var r = repl.start({
input: dummy,
output: dummy,
useGlobal: false
});
r.context.foo = 42;
r.on('reset', function(context) {
assert(!!context, 'REPL did not emit a context with reset event');
assert.equal(context, r.context, 'REPL emitted incorrect context');
assert.equal(context.foo, undefined, 'REPL emitted the previous context, and is not using global as context');
context.foo = 42;
cb();
});
r.resetContext();
}
function testResetGlobal(cb) {
var r = repl.start({
input: dummy,
output: dummy,
useGlobal: true
});
r.context.foo = 42;
r.on('reset', function(context) {
assert.equal(context.foo, 42, '"foo" property is missing from REPL using global as context');
cb();
});
r.resetContext();
}
var timeout = setTimeout(function() {
assert.fail('Timeout, REPL did not emit reset events');
}, 5000);
testReset(function() {
testResetGlobal(function() {
clearTimeout(timeout);
});
});