Event
NAME
Test::Async::Event ā collection of standard events
SYNOPSIS
use Test::Async::Event;
test-bundle MyBundle {
        method foo(Str:D $message) is test-tool {
            self.send-test: Event::Ok, :$message
        }
    }
General information about Test::Async event management can be found in
Test::Async::Manual.
Events are objects of classes derived from Event class. This module defines events used by the core. In general,
all event classes can be conventionally split into the following groups:
- informative ā events signalling about some state changes. Like, for example, suite termination. 
- reporting - events bearing a message to be reported to user. 
- commands ā those which tell the core to perform an action. 
- tests ā outcomes of individual test tools. 
EXPORTED CLASSES
Class Event
The base event class.
Attributes
- $.originā event originating object. Defaults to the current test suite object.
- Int:D $.idā event id, a sequential number.
- Instant:D $.timeā the moment when event object was created.
Methods
- Profileā returns a Map suitable for passing to an event constructor. The method collects all changed public attributes of an object.
- gist,- Strā stringify event object for reporting.
Class Event::Report
Is Event.
Base class for events carrying a text message of any kind.
Attributes
- Str:D $.messageā the event message
Class Event::Command
Is Event.
Base class of commanding events. Test::Async::Hub handles them specially.
Attributes
- Capture:D $.argsā command arguments
Class Event::Test
Is Event::Report
Base class for events reporting test outcomes.
Attributes
- Str $.todoā message to use if test is marked as TODO.
- Str $.flunksā message to use if test is marked as anticipated failure (see- test-flunksin Test::Async::Base.
- CallFrame:D $.caller, required ā position in user code where the test was called.
- @.child-messagesā messages from child suites. Each entry should be a single line ending with newline.
- @.commentsā comments for the test. Normally expected to be reported with- diag. Not special formatting requirements except for a recommendation for the last line not to end with a newline.
Class <Event::StageTransition>
Emitted each time suite stage is changed.
Attributes
- $.fromā the stage before transition
- $.toā the stage after transition
Class <Event::JobsAwaited>
Emitted when all pending jobs are completed.
Class Event::Terminate
Is Event.
This is the only kind of event which Term::Async::Aggregator role cares about. It tells the event loop to pull any remaining events from the queue and dispatch them immediately. Then it fulfills event's promise.
Attributes
- Promise::Vow $.completed, required ā a promise vow to be kept when event loop finishes processing all remaining events.
Class Event::Telemetry
Is Event
Under development yet.
Class Event::Plan
Is Event::Report
Plan reporting event. Emitted when a suite gets to know the number of tests to be done.
Attributes
- Bool $.skipā suite is planned for skiping.
- UInt:D $.planned, required - number of tests planned.
Class Event::Diag
Is Event::Report.
Carries a diagnostics message. See diag in Test::Async::Base.
Class Event::Ok
Is Event::Test.
Test passed.
Class Event::NotOk
Is Event::Test.
Test flunked.
Class Event::Skip
Is Event::Test.
Test skipped.
Class Event::DoneTesting
Is Event::Report.
Emitted when testing is completely done.
Class Event::BailOut
Is Event::Report
Emitted when test suite is about to bail out.
Command event classes Event::Cmd::*
A bundle of events used internally for commands. See Test::Async::Hub and possibly other modules. The set of command events is not standartized and subject for changes.
SEE ALSO
Test::Async::Manual, Test::Async::Aggregator, Test::Async::Hub
AUTHOR
Vadim Belman <[email protected]>