Git Product home page Git Product logo

tryorama's Introduction

Project Discord License: CAL 1.0 Test

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

Complete API reference

Compatibility

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.

Tryorama v0.15.x is compatible with JS client v0.16.x and Holochain v0.2.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.

Example with 2 conductors creating and reading an entry.

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

Example

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.

Example sending and receiving a signal

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.