@holochain/tryorama
v0.18.0-dev.1
Published
Toolset to manage Holochain conductors and facilitate running test scenarios
Downloads
1,536
Readme
Tryorama
Tryorama provides a convenient way to run an arbitrary amount of Holochain conductors on your local machine, as well as on network nodes that are running the TryCP service. In combination with the test runner and assertion library of your choice, you can test the behavior of multiple Holochain nodes in a network. Included functions to clean up used resources make sure that all state is deleted between tests so that they are independent of one another.
npm install @holochain/tryorama
Compatibility
Tryorama v0.18.x is compatible with JS client v0.19.x and Holochain v0.5.x.
Tryorama v0.17.x is compatible with JS client v0.18.x and Holochain v0.4.x.
Tryorama v0.16.x is compatible with JS client v0.17.x and Holochain v0.3.x.
Example
With a few lines of code you can start testing your Holochain application. The examples in this repository use tape as test runner and assertion library. You can choose any other runner and library.
There are lots of examples for working with scenarios and conductors
in the scenario
and
conductor
test folders.
Curried function to get a zome caller
Signals
Scenario.addPlayerWithHapp
as well as Conductor.installAgentsHapps
allow for a
signal handler to be specified. Signal handlers are registered with
the conductor and act as a callback when a signal is received.
Logging
The log level can be set with the environment variable TRYORAMA_LOG_LEVEL
.
Log levels used in Tryorama are debug
, verbose
and info
. The default
level is info
. To set the log level for a test run, prepend the test command
with:
TRYORAMA_LOG_LEVEL=debug node test.js
Concepts
Scenarios provide high-level functions to interact with the Holochain Conductor API. Players consist of a conductor, an agent and installed hApps, and can be added to a Scenario. Access to installed hApps is made available through the cells, which can either be destructured according to the sequence during installation or retrieved by their role id.
One level underneath the Scenario is the Conductor. Apart from methods for creation, startup and shutdown, it comes with complete functionality of Admin and App API that the JavaScript client offers.