timoxley: how does chai catch the thrown error to run the test?