Files
tycho-protocol-sdk/testing

Substreams Testing

This package provides a comprehensive testing suite for Substreams modules. The testing suite is designed to facilitate end-to-end testing, ensuring that your Substreams modules function as expected.

Overview

The testing suite builds the .spkg for your Substreams module, indexes a specified block range, and verifies that the expected state has been correctly indexed in PostgreSQL.

Prerequisites

  • Latest version of our indexer, Tycho. Please contact us to obtain the latest version. Once acquired, place it in the /testing/ directory.
  • Docker installed on your machine.

Test Configuration

Tests are defined in a yaml file. A template can be found at substreams/ethereum-template/test_assets.yaml. The configuration file should include:

  • The target Substreams config file.
  • The expected protocol types.
  • The tests to be run.

Each test will index all blocks between start-block and stop-block and verify that the indexed state matches the expected state.

Running Tests

Step 1: Export Environment Variables

Export the required environment variables for the execution. You can find the available environment variables in the .env.default file. Please create a .env file in the testing directory and set the required environment variables.

The variable SUBSTREAMS_PATH should be a relative reference to the directory containing the Substreams module that you want to test.

Example: SUBSTREAMS_PATH=../substreams/ethereum-curve

Step 2: Build and the Testing Script

Run the testing script using Docker Compose:

docker compose run app