export function expectToFail(fn: () => Promise, errorMessage?: string): Promise { return fn() .then(() => { const functionSource = fn.name || (fn).source || fn.toString(); const errorDetails = errorMessage ? `\n\tDetails:\n\t${errorMessage}` : ''; throw new Error( `Function ${functionSource} was expected to fail, but succeeded.${errorDetails}`); }, () => { }); } export function wait(msecs: number) { return new Promise((resolve) => { setTimeout(resolve, msecs); }); }