3_e2e_tests_deep_dive
## Supported Services in E2E Tests
To see the list of supported services for the tests, see the `test_cases` array in the [E2E Test Config](https://github.com/buildwithgrove/path/blob/main/e2e/config/e2e_load_test.config.default.yaml) file.
## Environment Variables
These environment variables are set by the test make targets, but if you wish to set them manually, see the table below:
<details>
<summary>Env Vars Table</summary>
| Variable | Description | Values | Required |
| ---------------- | ------------------------------------------------------------------------------------------------- | ----------------------------------- | -------- |
| TEST_MODE | Determines the test execution mode | `e2e` | Yes |
| TEST_PROTOCOL | Specifies which protocol to test | `shannon` | Yes |
| TEST_SERVICE_IDS | Specifies which service IDs to test. If not set, all service IDs for the protocol will be tested. | Comma-separated list of service IDs | No |
| TEST_WEBSOCKETS | Run only Websocket tests, skipping HTTP tests entirely | `true` or `false` | No |
</details>
## Extending/Updating/Adding EVM E2E Tests
To add new services or methods to the E2E tests, you will need to open a new PR to PATH's `main` branch.
{% stepper %}
{% step %}
## Add service definitions
Add new service definitions to the `services` array in the `e2e/config/services_shannon.yaml` configuration file.
{% endstep %}
{% step %}
## Configure service parameters
Configure service parameters including contract addresses, start blocks, and transaction hashes for archival tests.
{% endstep %}
{% endstepper %}
**Example new service configuration:**
```yaml
services:
- name: "New Chain E2E Test"
protocol: "shannon"
service_id: "newchain"
archival: true
service_params:
contract_address: "0x..."
contract_start_block: 1000000
transaction_hash: "0x..."
call_data: "0x18160ddd"Test Metrics and Validation
Websocket Testing
Websocket Test Features
Websocket Test Modes
Mode
Command
Description
Service Configuration
Reviewing PATH Logs
Was this helpful?
