Test::Async::Metamodel::BundleClassHOW - metaclass backing custom bundle classes.
This class function is to ensure that test tool methods are wrapped into common boilerplate. The boilerplate does the following:
determines calling context to make sure any error reported points at user code where the test tool is invoked. As a result it sets two dynamic variables
$*TEST-THROWS-LIKE-CTX – Stash for test tools using EVAL.
$*TEST-CALLER - CallerFrame instance of the frame where the tool is invoked.
validates if current suite stage allows test tool invokation
tries to transition the suite into TSInProgress stage if tool method object has `$.readify` set (see Test::Async::TestTool
emits Event::Skip if tool method has its $.skippable set and suite's $.skip-message is defined.
otherwise invokes the original test tool method code.
Note that wrapping doesn't replace the method object itself.
Test::Async::Manual, Test::Async::Decl
Vadim Belman <vrurg@cpan.org>