rooibos
rooibos copied to clipboard
Update Auto Asserting Mocks to better handle async tests
The current implementation related to Auto Asserting Mocks
will always call clean and assert stubs and mocks the moment after calling the test group. This results in anything that happens async after that initial call will have it's stubs and mocks blown away. We should update this logic to be called after the group completes for async tests.
Consider the following test for example:
@async
@it("async with stub call for node function")
function _()
m.stubCall(SetLabelText, function(text)
m.wasCalled = true
m.testSuite.assertEqual(text, "")
m.testSuite.assertTrue(true)
m.testSuite.done()
? "done three"
end function)
delayCall(0.02, SetLabelText)
end function
The current logic would result in the stub for SetLabelText
to be cleared before it was ever called.
As part of #259 the auto asserting was disabled by default for async tests. The scope of this ticket would be to re-enable this functionality, but for it to respect the completion of the Async test.