Skip to content

Create complex multi-point e2e tests

Overview

  • Our current e2e test runs with a happy path using sleep as a hacky way to handle a few events being added/deleted/updated.
  • It does not yet test killed processes, or any large amount of data.

Problem

  • Our current CI E2E test uses sleep as well as & to effectively run multiple processes, but it only tests the outcome of all of the events at the end by validate the state of the final consumer database.

Outcome

  • We want to be able to run databases and siphon services independently and test Siphon at a large scale (1M+ rows).
  • We should be able to test the initial snapshot when it is killed and then restarted successfully

Solution

There's a few potential ways to do this, and others we aren't aware of yet!

  • Could we do this using our existing CI job YAML configuration? Maybe? Would this be too inflexible? Probably.
  • Find another framework that's designed for this? Testcontainers? Some sort of load testing? (Someone mentioned locust)
  • This is the first thing to figure out.