e2e-for-economist v1.0.0
End to end tests
Runs tests against a production version of the newsletters hub, i.e. it's a very high-level set of tests that interacts with the webpage in a similar way to manual QA testing would.
Uses playwright as the test runner.
Command-line instructions
All instructions based on a command line in this directory
First time setup
- run
npm ito install dependencies - run
npx playwright installto install playwright dependencies (such as headless browsers)
Running the tests
- Copy (don't rename) the .env.template file to .env
- update the
BASE_URLvariable in .env to the environment you wish to test against (e.g. https://stage.economist.com) - fill in the credentials with a valid credentials to match the environment (ask a team-member if unsure)
- Run the tests with
npm run testor the test script (webstorm)- To actually see the browser when running, use
npm run test:with-browserinstead
- To actually see the browser when running, use
The valid urls are local, dev, stage and prod.
Helpful features when writing/debugging tests
Running specific tests
To run a subset of tests, use test.only or test.describe.only in place of test and test.describe for any tests or describe blocks you wish to run. All other tests will be ignored.
Context: why is this here?
We want integration tests to be completely independent of production code (i.e. it does not belong under /src). Having it here forces us to think carefully about importing code from production, as we have to explicitly allow it, or to have a really obviously horrible relative import.
Separating this out allows us to only install it for running tests, and to avoid doing so for building the app, which speeds up all aspects of the CI (deployment and testing).
3 years ago