JamieMason/expect-more

View on GitHub
packages/expect-more/src/throws-any-error.ts

Summary

Maintainability
A
0 mins
Test Coverage
F
20%
import type { AnyFn } from './typings';

/**
 * Asserts that a value is a `Function` which throws when invoked.
 * @param value () => { throw new Error("it wasn't me!") }
 * @matcherName toThrowAnyError
 * @memberMatcherName toHaveMethodThrowingAnyError
 * @matcherMessage expected ${value} to throw
 * @matcherNotMessage expected ${value} not to throw
 */
export const throwsAnyError = <T extends AnyFn = AnyFn>(value: T): value is T => {
  try {
    value();
    return false;
  } catch (err) {
    return true;
  }
};