var Parser = require('../lib/parser/hiredis').Parser;
var assert = require('assert');
/*
This test makes sure that exceptions thrown inside of "reply" event handlers
are not trapped and mistakenly emitted as parse errors.
*/
(function testExecuteDoesNotCatchReplyCallbackExceptions() {
var parser = new Parser();
var replies = [{}];
parser.reader = {
feed: function() {},
get: function() {
return replies.shift();
}
};
var emittedError = false;
var caughtException = false;
parser
.on('error', function() {
emittedError = true;
})
.on('reply', function() {
throw new Error('bad');
});
try {
parser.execute();
} catch (err) {
caughtException = true;
}
assert.equal(caughtException, true);
assert.equal(emittedError, false);
})();
|