This sequence slightly misuses the soft failure stack. It's not necessary to duplicate the existing error handler in user code such as jqUnitCondition - instead the handler should just restore the existing handler on conclusion. The sequence should be:

i) before the fixture starts, call fluid.pushSoftFailure(utilsCondition)
ii) after the fixture finishes, call fluid.pushSoftFailure(-1)

However, a further issue is that with "utilsCondition" is that we are testing an error handler which is different to the standard one which will run in real use. We should really just push a "do-nothing" handler onto the stack (that is, one which just immediately causes a hard failure via throw new Error() or so - in fact, you can simply use fluid.builtinFail with soft = false for this purpose) so that what we test is really the action of the uncaught exception handler on Kettle utils.js line 31 - since most of the code here just duplicates that handler's code. I see also that there is duplication in Kettle itself between these two handlers (that is, utils.js line 32 and line 51), which should be removed. In the end there should be just ONE copy of the "request = fluid.expand("{request}"" code in the entire system, rather than the three which we now have including utilsCondition.