Try   HackMD

Document automated testing across the Holo organization, including but not limited to:

tags: holo-notes holo-notes-testing

Testing tools and frameworks

  • JavaScript & Typescript
    • Tryorama
      • When is this used: This is for unit testing Holochain DNA's
        • Used In:
          • Holofuel
          • SL
          • JCH
          • HHA
          • dummy-dna
    • tryCP:
      • This is used for load testing holochain DNA's locally
        • Used In:
          • Holofuel
          • SL
          • JCH
    • Mocha or tape
      • Testing javascript services and API's
        • Used In
          • hpos-holochain-api
  • Rust Testing frameworks
    • Testing rust services and API's
      • Used In:
        • envoy
        • configure-holochain
  • Pupeteer
    • This is used to run integration tests on UI's
      • used in
        • nightly tests
        • Holofuel UI tests
  • nixOS tests
    • This is used to run unit tests on nix code i.e. holoport code
      • Used In
        • holo-nixpkgs

Nightly tests

Application/Subject Under Test (SUT)

  • Holoport setup (not registration)
  • Holo hosting

Environment (Dev. QA, Alpha, Master(Prod)

  • Nightly tests are only run on Dev
  • They are also run before every PR is merged into dev

Brief description of testing

  • The Basic holo hosting is tested
    • Log-in to host-console
    • Publish and hosting a happ
    • Hosted user accessing a hosted happ and making zome calls

Framework used

  • puppeteer with mocha

URL/Location of Test Suite (Github, Google Drive, etc.)

https://github.com/Holo-Host/nightly-network-test/

Test cases/coverage

  • Test of host console UI functions
    • Sign in with host credentials
    • Check if authenticated calls to holoport apis are successful
    • Check if unauthenticated call to holoport api fails with 401
    • Sign out host
  • Test of hosted happ UI connected to holo network (Dummy DNA and UI)
    • Sign out and check there's no more agent present
    • Sign in and check if connected to the same host
    • Receives a signal
    • Calls cell and receives signal from different cell
    • Calls second cell
    • Check old transactions

Ownership

  • Holo Devs that update holo-nixpkgs

Who owns the test suite?

  • Holo Devs that update holo-nixpkgs

Who is accountable for maintenance?

  • Holo Devs that update holo-nixpkgs

Run schedule

  • Every night
  • And before every PR merged into develop of holo-nixpkgs

Test Maintenance

  • How/when are tests reviewed and updated?
    Currently this is to keep tabs on the general working of our eco-system, so when work on holo-nixpkgs are made

Who is responsible for maintaining the testing framework?

~~

How often is the framework updated?

~~

Test Results/Reporting

The nightly runs are reported on the Holo-Hosting channel on MM

Process for reviewing results

Its a pass or fail result.

Who is responsible for reviewing/troubleshooting failures?

Holo devs

When/how are defects/issues reported?

This notifies us of a broken service or a regression, Based on passed experiences it breaks due to know updates and is tracked by devs

How/when are test results/trends reported to a wider audience?#

Not applicable. Only ment for internal dev use


Tryorama tests

Application/Subject Under Test (SUT)

All Holo DNAs

  • Holofuel
  • Holo-Hosting-app
  • servieclogger
  • joining-code-factory
  • dummy-dna

Environment (Dev. QA, Alpha, Master(Prod)

  • Only for Dev use

Brief description of testing

  • This is a unit testing framework that is used to test DNA's
  • They are a part of the dev life-cycle
  • Its spins us multiple local holochain nodes and intracts with each other based in the applications

Framework used

  • Tryorama
  • Tape
  • Languages: Typescript

URL/Location of Test Suite (Github, Google Drive, etc.)

  • All DNA's