btcpayserver/BTCPayServer.Tests
2020-03-13 08:00:04 +01:00
..
Lnd
Logging
Mocks
Properties
TestData
ApiKeysTests.cs fix test 2020-03-13 08:00:04 +01:00
BTCPayServer.Tests.csproj Bump various libraries 2020-03-10 21:24:22 +09:00
BTCPayServerTester.cs WaitSiteIsOperational should only wait full sync 2020-03-10 17:24:38 +09:00
ChangellyTests.cs
ChargeTester.cs
CheckoutUITests.cs fix e2e tests 2020-03-11 16:52:29 +01:00
CoinSwitchTests.cs
CrowdfundTests.cs
CustomerHttpServer.cs
docker-bitcoin-cli.ps1
docker-bitcoin-cli.sh
docker-bitcoin-generate.ps1
docker-compose.monero.yml
docker-compose.yml Bump nbx 2020-03-11 22:32:53 +09:00
docker-customer-lightning-cli.ps1
docker-customer-lightning-cli.sh
docker-entrypoint.sh
docker-litecoin-cli.ps1
docker-litecoin-cli.sh
docker-merchant-lightning-cli.ps1
docker-merchant-lightning-cli.sh
Dockerfile
ElementsTests.cs
Extensions.cs fix e2e tests 2020-03-11 16:52:29 +01:00
GreenfieldAPITests.cs Greenfield API: God Mode 2020-03-12 18:43:57 +01:00
LightningDTester.cs
MockDelay.cs
PaymentHandlerTest.cs
PaymentRequestTests.cs
ProcessLauncher.cs
PSBTTests.cs BPU Prep Work Part2 (#1340) 2020-02-19 17:35:23 +09:00
RateRulesTest.cs Add warning if fail to load rates from cache 2020-02-16 23:04:48 +09:00
README.md
SeleniumTester.cs Fixing ocassional CanManageWallet Selenium test fails 2020-03-06 02:06:32 -06:00
SeleniumTests.cs Wallet prep work for BPU (#1331) 2020-02-13 22:06:00 +09:00
ServerTester.cs Fixing CanCreateApiKeys test admin user check 2020-02-28 23:15:06 -06:00
sshd.Dockerfile
StorageTests.cs
TestAccount.cs Fixing CanCreateApiKeys test admin user check 2020-02-28 23:15:06 -06:00
TestUtils.cs
U2FTests.cs
UnitTest1.cs Simplify RBF handling, and handle case of double spend happening outside of wallet (Fix #1375) 2020-03-11 21:05:12 +09:00
UtilitiesTests.cs
Utils.cs
xunit.runner.json

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 tests on MySql database instead of Postgres by setting environnement variable TESTS_DB equals to MySql.

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

You can also generate blocks:

.\docker-bitcoin-generate.ps1 3

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.