This is largely a straight-forward copy of the Karma spec, with the
usual Karma->Jest necessary changes.
This also fixes a bug in the implementation that was causing the tests
to fail, when run on Jest/node, whereby actions that return rejected
promises would always fail the given test. This was due to those
rejections not being caught in the same call stack in which they were
created.