0.0.4 • Published 2 years ago

@near-wallet/e2e-tests v0.0.4

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

NEAR Wallet E2E Tests

An end to end test suite for NEAR Wallet flows. Intended to verify and assert that all major flows are functional.

Setup

To run the test suite

  1. Add the following environment variables
    • BANK_ACCOUNT: This is the account id the test suite will use to generate temporary sub accounts for testing.
    • BANK_SEED_PHRASE: The seed phrase for the BANK_ACCOUNT
    • TEST_ACCOUNT_SEED_PHRASE: Seed phrase to use for accounts temporarily generated by the test suite.
    • WALLET_NETWORK: The wallet network (/mainnet|testnet|betanet/) to run the tests against. defaults to testnet
    • NODE_URL (optional): The rpc node to use for the test suite's connection to NEAR. defaults to https://rpc.testnet.near.org
    • WALLET_URL (optional): The wallet URL to use in the test suite. defaults to https://wallet.testnet.near.org
  2. Run
    • yarn && yarn run e2e or
    • yarn && yarn run e2e:debug to run in debug mode

Tooling

  • This module uses Playwright to include support for webkit and multi-tab flows
  • This module uses the official Playwright Test test runner
  • This module extends the matchers provided the the test runner and makes assertions using expect-playwright

Best Practices and Design Decisions

Jest vs Playwright Test runner

  • We opted for the official Playwright test runner
  • We prefer a simpler setup with less moving parts and APIs to reason about
  • Support for testing-library queries is not crucial to us at the moment since we intend to use test-ids frequently in our end to end test suite. More on this below.

Test IDs vs User driven selectors and queries

  • We will use test-ids frequently in our end to end tests. We will use user centric queries as encouraged by testing library in our unit and integration tests.
  • This is because our main goal here is functionality not accessibility or visibility
  • Having said that, we will not overuse test-ids since we don't want to add too much maintanence overhead