vega-frontend-monorepo/apps/trading/e2e
2023-12-22 13:58:20 +01:00
..
actions chore(trading): fees e2e tests (#5496) 2023-12-19 12:22:15 +00:00
fixtures chore(trading): fees e2e tests (#5496) 2023-12-19 12:22:15 +00:00
tests chore(trading): update market-sim (#5535) 2023-12-21 13:51:34 +00:00
.env chore(trading): static vega port trading e2e (#5520) 2023-12-20 15:49:10 +00:00
.env.develop chore(trading): update vega version (#5498) 2023-12-13 11:16:52 +00:00
.env.main chore(trading): static vega port trading e2e (#5520) 2023-12-20 15:49:10 +00:00
config.py chore(trading): add playwright and market sim testing framework (#5199) 2023-11-14 10:05:07 -08:00
conftest.py chore(trading): static vega port trading e2e (#5520) 2023-12-20 15:49:10 +00:00
poetry.lock feat: update sim version 2023-12-22 13:58:20 +01:00
pyproject.toml feat(trading): perp market tests (#5426) 2023-12-04 14:29:00 +00:00
README.md chore(trading): static vega port trading e2e (#5520) 2023-12-20 15:49:10 +00:00
wallet_config.py test: add referrals tests 2023-12-12 10:15:20 +00:00

Trading Market-Sim End-To-End Tests

This direcotry contains end-to-end tests for the trading application using vega-market-sim. This README will guide you through setting up your environment and running the tests.

Prerequisites

Getting Started

  1. Install Poetry: Follow the instructions on the official Poetry website.
  2. Install Docker: Follow the instructions on the official Docker website.
  3. Install Python: Follow the instructions on the official Python website ensure you install a version between 3.9 and 3.11.
  4. Start up a Poetry environment: Execute the commands below to configure the Poetry environment.

Ensure you are in the tests folder before running commands

poetry shell
  1. Install python dependencies

To make sure you are on the latest version of our market-sim branch.

poetry update vega-sim
poetry install
  1. Install Playwright Browsers: Execute the command below to browsers for Playwright.
playwright install chromium
  1. Download necessary binaries: Use the following command within your Python environment. The --force flag ensures the binaries are overwritten, and the --version specifies the desired version. e.g. v0.73.4
python -m vega_sim.tools.load_binaries --force --version $VEGA_VERSION
  1. Pull the desired Docker image
docker pull vegaprotocol/trading:develop
  1. Run tests: Poetry/Python will serve the app from docker

Update the .env file with the correct trading image.

poetry run pytest

Docker images

Pull the desired image:

Testnet

docker pull vegaprotocol/trading:develop

Mainnet

docker pull vegaprotocol/trading:main

Find all available images on Docker Hub.

Create a Docker Image of Your Locally Built Trading App

To build your Docker image, use the following commands:

yarn nx build trading ./docker/prepare-dist.sh
docker build -f docker/node-outside-docker.Dockerfile --build-arg APP=trading --build-arg ENV_NAME=stagnet1 -t vegaprotocol/trading:latest .

Running Tests 🧪

Before running make sure the docker daemon is running.

To run a specific test, use the -k option followed by the name of the test. Run all tests:

poetry run pytest

Run a targeted test:

poetry run pytest -k "test_name" -s --headed

Run from anywhere:

yarn trading:test -- "test_name" -s --headed

Run using your locally served console:

Within one terminal

yarn nx build trading
yarn nx serve trading

Once console is served you can update the .env file to have local_server to true.

Running Tests in Parallel 🔢

To run tests in parallel, use the --numprocesses auto option. The --dist loadfile setting ensures that multiple runners are not assigned to a single test file.

From within the e2e folder:

poetry run pytest -s --numprocesses auto --dist loadfile

From anywhere:

yarn trading:test:all

Things to know

If you "intellisense" isn't working follow these steps:

  1. poetry run which python
    
  2. Then open the command menu in vscode (cmd + shift + p) and type select interpreter , press enter, select enter interpreter path press enter then paste in the output from that above command you should get the right python again