btcpayserver/BTCPayServer.Tests
2018-07-19 14:49:30 +09:00
..
Lnd Update to https, use new dockerfile 2018-07-10 19:33:54 +09:00
Logging Make ChargeListener use only one websocket connection per url 2018-02-26 13:29:23 +09:00
Mocks Refactor the RateProvider 2018-05-03 03:32:42 +09:00
Properties Adopt dotnet core editorconfig, big reformating 2017-10-27 17:53:04 +09:00
BTCPayServer.Tests.csproj update clightning 2018-06-18 23:07:55 +09:00
BTCPayServerTester.cs Make sure the rate of the merchant is using the ask of a divided exchange 2018-05-23 02:18:38 +09:00
ChargeTester.cs Fix tests 2018-07-01 16:10:17 +09:00
CustomerHttpServer.cs Adopt dotnet core editorconfig, big reformating 2017-10-27 17:53:04 +09:00
docker-bitcoin-cli.ps1 Remove useless stuff in command line for tests 2018-03-17 19:35:37 +09:00
docker-bitcoin-cli.sh Add linux script for manual testing 2018-03-17 19:40:23 +09:00
docker-compose.yml simplify the docker-compose 2018-07-11 10:42:20 +09:00
docker-customer-lightning-cli.ps1 Fix charge listener bug, and decouple charge from clightning in test docker compose 2018-03-17 19:26:30 +09:00
docker-customer-lightning-cli.sh Add linux script for manual testing 2018-03-17 19:40:23 +09:00
docker-litecoin-cli.ps1 Remove useless stuff in command line for tests 2018-03-17 19:35:37 +09:00
docker-litecoin-cli.sh Add linux script for manual testing 2018-03-17 19:40:23 +09:00
docker-merchant-lightning-cli.ps1 Can connect directly to CLightning via TCP or UNIX socket 2018-03-21 00:31:19 +09:00
docker-merchant-lightning-cli.sh Can connect directly to CLightning via TCP or UNIX socket 2018-03-21 00:31:19 +09:00
Dockerfile Updating BTCPayServer to .NET Core 2.1 2018-05-31 18:41:03 +09:00
LightningDTester.cs Abstract ChargeClient to prepare for support of other lightning implementation 2018-03-20 11:59:43 +09:00
ProcessLauncher.cs Adopt dotnet core editorconfig, big reformating 2017-10-27 17:53:04 +09:00
RateRulesTest.cs Can solve inverses at exchange level 2018-05-23 19:29:01 +09:00
README.md Add linux script for manual testing 2018-03-17 19:40:23 +09:00
ServerTester.cs Fix tests, and make sure Listen does not block for LND 2018-07-19 14:49:30 +09:00
TestAccount.cs Use SHA256 cert thumprint in connection string, allowInsecure=true 2018-07-08 20:58:37 +09:00
UnitTest1.cs Fix tests, and make sure Listen does not block for LND 2018-07-19 14:49:30 +09:00
UnitTestPeusa.cs Merge remote-tracking branch 'source/master' into dev-lndrpc 2018-05-16 04:50:46 -05:00
Utils.cs Adopt dotnet core editorconfig, big reformating 2017-10-27 17:53:04 +09:00

How to be started for development

BTCPay Server tests depend on having a proper environment running with Postgres, Bitcoind, NBxplorer configured. You can however use the docker-compose.yml of this folder to get it running.

In addition, when you run a debug session of BTCPay (Hitting F5 on Visual Studio Code or Visual Studio 2017), it will run the launch profile called Docker-Regtest. This launch profile depends on this docker-compose running.

This is running a bitcoind instance on regtest, a private bitcoin blockchain for testing on which you can generate blocks yourself.

docker-compose up dev

You can run the tests while it is running through your favorite IDE, or with

dotnet test

Once you want to stop

docker-compose down

If you want to stop, and remove all existing data

docker-compose down --v

You can run the tests inside a container by running

docker-compose run --rm tests

How to manually test payments

Using the test bitcoin-cli

You can call bitcoin-cli inside the container with docker exec, for example, if you want to send 0.23111090 to mohu16LH66ptoWGEL1GtP6KHTBJYXMWhEf:

./docker-bitcoin-cli.sh sendtoaddress "mohu16LH66ptoWGEL1GtP6KHTBJYXMWhEf" 0.23111090

If you are using Powershell:

.\docker-bitcoin-cli.ps1 sendtoaddress "mohu16LH66ptoWGEL1GtP6KHTBJYXMWhEf" 0.23111090

Using the test litecoin-cli

Same as bitcoin-cli, but with .\docker-litecoin-cli.ps1 and .\docker-litecoin-cli.sh instead.

Using the test lightning-cli

If you are using Linux:

./docker-customer-lightning-cli.sh pay lnbcrt100u1pd2e6uspp5ajnadvhazjrz55twd5k6yeg9u87wpw0q2fdr7g960yl5asv5fmnqdq9d3hkccqpxmedyrk0ehw5ueqx5e0r4qrrv74cewddfcvsxaawqz7634cmjj39sqwy5tvhz0hasktkk6t9pqfdh3edmf3z09zst5y7khv3rvxh8ctqqw6mwhh

If you are using Powershell:

.\docker-customer-lightning-cli.ps1 pay lnbcrt100u1pd2e6uspp5ajnadvhazjrz55twd5k6yeg9u87wpw0q2fdr7g960yl5asv5fmnqdq9d3hkccqpxmedyrk0ehw5ueqx5e0r4qrrv74cewddfcvsxaawqz7634cmjj39sqwy5tvhz0hasktkk6t9pqfdh3edmf3z09zst5y7khv3rvxh8ctqqw6mwhh

If you get this message:

{ "code" : 205, "message" : "Could not find a route", "data" : { "getroute_tries" : 1, "sendpay_tries" : 0 } }

Please, run the test CanSetLightningServer, this will establish a channel between the customer and the merchant, then, retry.

FAQ

docker-compose up dev failed or tests are not passing, what should I do?

  1. Run docker-compose down --v (this will reset your test environment)
  2. Run docker-compose pull (this will ensure you have the lastest images)
  3. Run again with docker-compose up dev

If you still have issues, try to restart docker.