transfer-server-validator
Test suite for validating SEP-6, SEP-24, & SEP-31 transfer servers.
Running
Via CLI
$ yarn
$ DOMAIN=https://testanchor.stellar.org npx jest
Testing a specific currency
$ DOMAIN=https://testanchor.stellar.org CURRENCY=SRT npx jest -I -i cases/deposit.test.js
Running a specific test
$ DOMAIN=https://localhost:8000 npx jest -I -i cases-SEP24/deposit.test.js
Using a self-signed certificate
If you're developing locally and need to use a self-signed certificate, pass the
env var NODE_TLS_REJECT_UNAUTHORIZED="0"
in order to avoid the
request to https://localhost:8000/.well-known/stellar.toml failed, reason: self signed certificate
error.
Via Docker
$ docker build -t transfer-server-validator .
$ docker run -p 3000:3000 transfer-server-validator
# to run in the CLI
$ docker run -e DOMAIN=http://<yourdomain.com transfer-server-validator
Run a specified project via Docker
$ docker build -t transfer-server-validator .
$ docker run -p 3000:3000 -e PROJECT=SEP31 transfer-server-validator
Running Optional Tests
Normally optional tests do not run. You can include them in your test run in docker like so:
$ docker run -e RUN_OPTIONAL_TESTS=1 -e DOMAIN=http://<yourdomain.com transfer-server-validator
And if you're running jest
directly, you can use the
--testPathIgnorePatterns
flag:
DOMAIN=https://testanchor.stellar.org npx jest --testPathIgnorePatterns='\b(\w*optional\w*)\b'
The UI provides an option to run these optional tests as well.
Running the Server Locally
# Run the server+client
$ npm install
$ npm run start:dev
Run a specified project Locally
# Run the server+client
$ npm install
$ PROJECT=SEP24 npm run start:dev
# Or run from the command line
$ DOMAIN=https://testanchor.stellar.org npx jest --roots=cases-SEP6
Running test suite for mainnet anchors
When using https://anchor-validator.stellar.org, running the validation suite on mainnet is as easy as selecting the 'Run on mainnet' checkbox.
When running your own instance of this project, you have to specify the following environment variables
MAINNET=1
This lets the project know it should expect the anchor to use
mainnet
MAINNET_MASTER_SECRET_KEY
This is a stellar account secret key that is used to
create temporary accounts for tests. This 'master' account must have at least 50
XLM in order to fund these accounts. When tests finish, the temporary accounts
will be merged back to the master account.
Running from the command line should look like this (testanchor.stellar.org does not run on mainnet)
$ DOMAIN=https://testanchor.stellar.org MAINNET=1 MAINNET_MASTER_SECRET_KEY=S... npx jest --roots=cases-SEP24
Running the client+server
$ MAINNET_MASTER_SECRET_KEY=S... npm run start:dev
Instructions for anchors
Automatic Deposit Approval
Our automated testing assumes that deposits are automatically approved for testnet deployments. This also makes it easier for manual testing so people can complete the flow without any coordination with the anchors.
Interactive flow testing
The transfer server validator does not test SEP-24 interactive flows, since they are custom for each anchor.