E2E tests

February 6, 2026 ยท View on GitHub

UI and its interaction with the backend are tested using E2E (end-to-end) cypress tests.

Running the E2E tests

To just run it, you can execute the runE2e Gradle task. This command runs a complex task, which installs all dependencies and runs everything it needs.

./gradlew runE2e

To run only selected specs, pass specs property with a comma-separated list or glob:

./gradlew runE2e -Pspecs="**/translations/plurals.cy.ts,**/translations/singleKeyForm.cy.ts"

Step-by-step run

  1. Prepare the environment by the development guide.

  2. Install dependencies:

    npm --prefix e2e ci
    
  3. Run the tested environment:

    # Run frontend with E2E settings
    VITE_APP_API_URL=http://localhost:8201 npm --prefix webapp run start -- --port 8081 --host --no-open
    # Run the E2E Docker services (like fake SMTP server)
    ./gradlew runDockerE2eDev
    # Run backend with e2e profile
    ./gradlew server-app:bootRun --args='--spring.profiles.active=e2e'
    # You can also do this by running the application with the E2e profile using Idea CE or Ultimate.
    # Then you will be also able to debug the backend and hotswap classes while running the tests, which can be pretty useful.
    
  4. Run the tests:

    ./gradlew openE2eDev
    
  5. Stop the environment when done:

    ./gradlew stopDockerE2e