1234567891011121314151617181920212223242526272829303132333435363738 |
- 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);
- })();
|