testing
Opened this issue · 6 comments
there is NO testing to be found. I think a good first pass would be to get some kind of end-to-end integration test running so that we can at least be a little confident things generally work before pushing updates.
need to think of how to best do this but I imagine it involves spinning up bitcoind/electrum/handful of sensei nodes and controlling them via api.
i think bdk has some infrastructure in place for this, worth researching their setup more.
GuN wallet would be a good project to look at, they do exactly that for gun wallet (which uses bdk) https://gun.fun
might be helpful for this https://github.com/RCasatta/bitcoind
Nigiri just added lightning! And also it has a --ci
flag for running headless in a github action. https://github.com/vulpemventures/nigiri
oh that's pretty cool, seems useful for testing for sure. need to get sensei support in nigiri :)
We're on it! vulpemventures/nigiri#151
Now that I've got some confidence in using the CLI, should be pretty straightforward to get merged.
THEN! We can switch gears to our conformance testing suite.
working on an integration "smoke test" that runs in rust using bitcoind
crate. it will exercise the AdminService and NodeService directly without needing to use the http/grpc apis. can be run without having to manually set up any external dependencies.
My plan is to use cypress to run e2e test against the web-admin which will be slower but exercise the web-admin, http api, and of course the inner services. this will need bitcoind + senseid running -- probably need a docker-compose file setup for this.