Files
btcpayserver/BTCPayServer.Tests
Andrew Camilleri 4055eda757 Part3: OpenIddict: Add Flows Event Handlers (#568)
* Part 1 & Part 2 squashed commits

pr changes


pr fixes


remove config for openid -- no need for it for now


Part 1: OpenIddict - Minor Changes & Config prep


Part2: Openiddict: Init OpenIddict & Database Migration & Auth Policies


pr changes


fix merge 


fix compile


fix compile #2


Part 1: OpenIddict - Minor Changes & Config prep


add missing nuget


Part2: Openiddict: Init OpenIddict & Database Migration & Auth Policies

* Part3: OpenIddict: Add Flows Event Handlers

* pr changes

* fix merge

* fix rebase

* fix imports

* cleanup

* do not allow u2f enabled accounts to log in

* start better tests for flows

* add tests

* fixes

* reintroduce dynamic policy as policies on jwt do not work without it

* reduce logs

* fix incorrect endpoint definitions

* Add implicit flow e2e test

* add code flow and refresh flow

* do not allow jwt bearer auth for all requests( only those under /api)

* remove commentedt code

* make sure authorize attr is marked with scheme

* remove dynamic policy and set claims in jwt handler

* cleanup

* change serversettings policy to not need a claim

* Add test to checkadmin verification

* revert server setting claim removal

* fix test

* switch back to claim

* unit test fixes

* try fix build with weird references to csprojes

* start fixing rebase

* remove https requirement to handle tor

* reformat tests correctly

* fix csproj

* fix ut formatting

* PR Changes

* do not show selenium browser
2019-07-01 12:39:25 +09:00
..
2019-03-05 17:29:52 +09:00
2018-12-11 12:47:38 +01:00
2019-03-05 17:29:52 +09:00
2019-01-06 15:04:30 +09:00
2019-06-18 13:51:04 +09:00
2019-05-14 22:29:05 +09:00
2019-05-31 12:17:47 +09:00
2018-10-28 22:51:02 +09:00
2019-05-08 12:19:16 +09:00
2019-05-12 14:51:24 +09:00
2018-12-11 22:18:17 -07:00
2018-12-20 21:00:06 +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 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.