* mailserver sends envelopes in descending order * add limit value in mailserver request payload * mailserver sends messages up to the limit specified in the request * update Archive method to return key and error * processRequest returns the next page cursor * add cursor to mailserver request * add limit and cursor to request payload * fix request limit encoding * wait for request completed event in TrackerSuite/TestRequestCompleted * add cursor to mailserver response * fix cursor position in payload * add e2e test for mail server pagination * validate mail server response size * remove old limitReached var * fix lint warnings * add whisper patch * fix tests after rebase * check all return values to avoid lint warnings * check that all messages have been retrieved after 2 paginated requests * fix lint warnings * rename geth patch * merge mailserver patches into one * add last envelope hash to mailserver response and EventEnvelopeAvailable event * update whisper patch * add docs to MailServerResponse * update whisper patch * fix tests and lint warnings * send mailserver response data on EventMailServerRequestCompleted signal * update tracker tests * optimise pagination test waiting for mailserver to archive only before requesting * rollback mailserver interface changes * refactoring and docs changes * fix payload size check to determine if a limit is specified * add more docs to the processRequest method * add constants for request payload field lengths * add const noLimits to specify that limit=0 means no limits
e2e
This package contains all e2e tests divided into subpackages which represents (or should represent) business domains like transactions, chat etc.
These tests are run against public testnets: Ropsten and Rinkeby.
e2e package contains a few utilities which are described in a godoc.
Flags
1. -network
The -network
flag is used to provide either a network id or network name which specifies the ethereum network to use
for running all test. It by default uses the StatusChain
network.
Usage
First of all you need to export an ACCOUNT_PASSWORD environment variable. It should be a passphrase that was used to generate accounts used in tests. If you don't know this variable for default accounts you will have to create your own accounts and request some funds from rinkeby or ropsten faucet. Please see Preparation section for details.
To use the ropsten
network for testing using network name:
ACCOUNT_PASSWORD=test go test -v ./t/e2e/... -p=1 -network=ropsten
To use the rinkeby
network with chain id 4
for testing:
ACCOUNT_PASSWORD=test go test -v ./t/e2e/... -p=1 -network=4
Preparation
You will need geth
in your PATH. Please visit: https://www.ethereum.org/cli.
Once installed - generate 2 accounts and remember the passphrase for them, so run this command twice:
geth account new --keystore=static/keys/
Your new account is locked with a password. Please give a password. Do not forget this password.
Passphrase:
Repeat passphrase:
Address: {b6120ddd881593537c2bd4280bae509ec94b1a6b}
We expect that accounts will be named in a certain way:
pushd static/keys/
mv UTC--2018-01-26T13-46-53.657752811Z--b6120ddd881593537c2bd4280bae509ec94b1a6b test-account1.pk
mv UTC--2018-01-26T13-47-49.289567120Z--9f04dc05c4c3ec3b8b1f36f7d7d153f3934b1f07 test-account2.pk
popd
Update config for tests with new accounts static/config/public-chain-accounts.json
:
{
"Account1": {
"Address": "0xb6120ddd881593537c2bd4280bae509ec94b1a6b"
},
"Account2": {
"Address": "0x9f04dc05c4c3ec3b8b1f36f7d7d153f3934b1f07"
}
}
Embed keys as a binary data, you will need to install npm
tool and web3.js lib:
make generate
As a final step request funds from faucet for a chosen network:
Finally, you are ready to run tests!