I have the following function in something.js, a browser script.
async function somethingFunction(value) {
try {
//Lots of lovely code manipulating 'value',
//an improper assignment here by passing 'undefined'
//to value argument of function would cause a TypeError
//When trying to access property of value (cannot access .test of undefined)
let somethingVar = value.test;
return somethingVar;
} catch (e) {
throw new Error();
}
}
And I've written as test as such:
describe(`#somethingFunction()`, async function () {
context(`Passing undefined as value parameter should be caught be try catch block`, function () {
it(`Should return error (TypeError)`, async function () {
expect(async function () {
await somethingFunction(undefined);
}).to.throw(TypeError);
});
});
});
On this test, Mocha give:
AssertionError: expected [Function] to throw 'TypeError'
But passing undefined to this function does in fact cause a error - A TypeError!
Are TypeErrors caught? How would Mocha test this?
Tl;dr - How do I catch TypeErrors and get Mocha to test for them?