This is because run_now() has changed: previously, if any errors/warnings/messages happened in a callback, they would pass all the way through to the caller of run_now(). In the new version of later, run_now uses R_TopLevelExec to invoke the callbacks, and errors/warnings/messages are not passed through R_TopLevelExec. (They will, however, still display at the console.)
You can install the upcoming version of later with:
devtools::install_github('r-lib/later@rc-v1.0.0')
I currently don't know of any way to capture the message generated by a callback invoked by run_now(), so I think your only recourse at this point may be to remove the test. If you can somehow move the expect_message() into the later callback, that would work. But your code may not be structured for that.
With the version of later that will be released soon, the following test fails:
https://github.com/thomasp85/fiery/blob/761a18d122bbd8bece3bb1847a25a5d097f4fd89/tests/testthat/test-Fire.R#L188-L193
This is because
run_now()
has changed: previously, if any errors/warnings/messages happened in a callback, they would pass all the way through to the caller ofrun_now()
. In the new version of later,run_now
usesR_TopLevelExec
to invoke the callbacks, and errors/warnings/messages are not passed throughR_TopLevelExec
. (They will, however, still display at the console.)You can install the upcoming version of later with:
I currently don't know of any way to capture the message generated by a callback invoked by
run_now()
, so I think your only recourse at this point may be to remove the test. If you can somehow move theexpect_message()
into the later callback, that would work. But your code may not be structured for that.