bitcoin-dev-project/sim-ln

Robustness: Improve Test Coverage of Repo

Opened this issue · 2 comments

SimLN started as a hackathon project, so it doesn't have much by way of unit tests. This is very, very bad.

We should aim to dramatically improve the coverage of the codebase to ensure that everything is working as expected, and there are no future regressions.

A great first starting point would be to add test coverage for Simulator with mock out LightningNode implementations. See sim node mocking as an example of how to go about this.

Low hanging fruit:

  • validate_activity
  • validate_node_network

Middle tier:
Test individual functions for their expected behavior, eg:

  • Spin up consume_events
  • Test various exit conditions - send_payment failure, listener shutdown etc
  • Test successful send_payment for both SimulationOutput::SendPaymentSuccess/SimulationOutput::SendPaymentFailure etc

A few considerations here:

  • Will need to spin up blocking functions like consume_events in a separate task so the test can run
  • Consider buffering channels to make life a bit easier

The rest of the elephant:

  • Test the high level Simulation::run function with mocked nodes
  • Refactors that make life easier here are welcome!

Hey @carlaKC. Following you recommendation #180 to write tests on validate_activity (currently working on it), Can I pick this up an work on the low hanging fruits

Can I pick this up an work on the low hanging fruits

Let's get #180 in first and then move on to this? Thanks for volunteering though, looking forward to getting going on this next.