0

This is function for which I have written test cases.

exports.sendOTPParser = event => {
console.log('sendOTPParser');
event = event || {};
try {
const body = JSON.parse(event.body);
const phoneNumber = body.phonenumber;
if (typeof phoneNumber !== 'string') {
  throw new Error('MalformedRequest');
}
event.phoneNumber = body.phonenumber;
return event;
} catch (error) {
console.log('Error in isEmailUniqueParser: %s', error.message);
throw new Error('MalformedRequest');
}

}

And this is the mocha code to test the given function. But, it is not catching error. Whats wrong??

var file = require('../src/auth/eventParsers');

var expect    = require('chai').expect;

describe('sendOTPParserTest', function(){

var event1 =  {"body": '{"phonenumber": 1234}'};
var event2 =  {"body": '{"phonenumber": "1234"}'};

// event2.body.phonenumber = '12345';
// event1.body.phonenumber = 12345;

it('returnTest', function(){
var result1 = file.sendOTPParser(event1);
// var result2 = file.sendOTPParser(event2);                expect(result2.phoneNumber).to.equal(JSON.parse(event2.body).phonenumber);
    expect(result1).to.throw(Error);

});

});

output:

bash-3.2$ mocha sendOTPParserTest.js

sendOTPParserTest
sendOTPParser
 Error in isEmailUniqueParser: MalformedRequest
 1) returnTest


   0 passing (14ms)
   1 failing

   1) sendOTPParserTest returnTest:
    Error: MalformedRequest
    at      
robertklep
  • 198,204
  • 35
  • 394
  • 381
  • output:bash-3.2$ mocha sendOTPParserTest.js sendOTPParserTest sendOTPParser Error in isEmailUniqueParser: MalformedRequest 1) returnTest 0 passing (14ms) 1 failing 1) sendOTPParserTest returnTest: Error: MalformedRequest at Object.exports.userCreateEventParser.exports.sendOTPParser.event [as sendOTPParser] (/Users/akshayrelfor/Documents/curber-dir/src/auth/eventParsers.js:40:11) at Context. (sendOTPParserTest.js:15:24) – Akshay Barpute Apr 04 '17 at 10:57

1 Answers1

0

Chai's throw assertion requires a function, not a function result.

To make it work, you can use something like this:

it('returnTest', function() {
  expect(() => file.sendOTPParser(event1)).to.throw(Error);
});
robertklep
  • 198,204
  • 35
  • 394
  • 381