docs(cypress): create how-to-add-cypress-tests doc (#40262)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
This commit is contained in:
@ -11,6 +11,7 @@
|
|||||||
- **Optional Guides**
|
- **Optional Guides**
|
||||||
- [Catch outgoing emails locally](how-to-catch-outgoing-emails-locally.md)
|
- [Catch outgoing emails locally](how-to-catch-outgoing-emails-locally.md)
|
||||||
- [Set up freeCodeCamp on WSL](how-to-setup-wsl.md)
|
- [Set up freeCodeCamp on WSL](how-to-setup-wsl.md)
|
||||||
|
- [Add Cypress tests](how-to-add-cypress-tests.md)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
43
docs/how-to-add-cypress-tests.md
Normal file
43
docs/how-to-add-cypress-tests.md
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# How to add Cypress tests
|
||||||
|
|
||||||
|
When making changes to JavaScript, CSS, or HTML which could change the functionality or layout of a page, it's important to add corresponding [Cypress](https://docs.cypress.io) integration tests.
|
||||||
|
|
||||||
|
To learn how to write Cypress tests, or 'specs', please see Cypress' official [documentation](https://docs.cypress.io/guides/getting-started/writing-your-first-test.html).
|
||||||
|
|
||||||
|
> Note: When writing tests for freeCodeCamp, remember to add `/* global cy */` to the top of the file to avoid ESLint issues.
|
||||||
|
|
||||||
|
### Where to add a test
|
||||||
|
|
||||||
|
- Cypress tests are in the `./cypress` directory.
|
||||||
|
|
||||||
|
- Cypress tests for a curriculum module are in the corresponding curriculum directory, i.e. `cypress/integration/learn/responsive-web-design/basic-css/index.js`.
|
||||||
|
|
||||||
|
### How to run tests
|
||||||
|
|
||||||
|
**1. Ensure that MongoDB and client applications are running**
|
||||||
|
|
||||||
|
- [Start MongoDB and seed the database](/how-to-setup-freecodecamp-locally#step-3-start-mongodb-and-seed-the-database)
|
||||||
|
|
||||||
|
- [Start the freeCodeCamp client application and API server](/how-to-setup-freecodecamp-locally#step-4-start-the-freecodecamp-client-application-and-api-server)
|
||||||
|
|
||||||
|
**2. Run the cypress tests**
|
||||||
|
|
||||||
|
To run tests against production builds, replace `dev` with `prd` bellow.
|
||||||
|
|
||||||
|
- To run all tests in the `./cypress` directory:
|
||||||
|
|
||||||
|
```console
|
||||||
|
npm run cypress:dev:run
|
||||||
|
```
|
||||||
|
|
||||||
|
- To run a single test:
|
||||||
|
|
||||||
|
```console
|
||||||
|
npm run cypress:dev:run -- --spec=cypress/pathToYourSpec/youSpecFileName.js
|
||||||
|
```
|
||||||
|
|
||||||
|
- To create a development build, start the development server, and run all existing cypress end-to-end tests:
|
||||||
|
|
||||||
|
```console
|
||||||
|
npm run e2e:dev:run
|
||||||
|
```
|
@ -65,7 +65,9 @@ Some examples of good PRs titles would be:
|
|||||||
|
|
||||||
5. Indicate if you have tested on a local copy of the site or not.
|
5. Indicate if you have tested on a local copy of the site or not.
|
||||||
|
|
||||||
This is very important when making changes that are not just edits to text content like documentation or a challenge description. Examples of changes that need local testing include JavaScript, CSS, or HTML which could change the functionality or layout of a page.
|
- This is very important when making changes that are not just edits to text content like documentation or a challenge description. Examples of changes that need local testing include JavaScript, CSS, or HTML which could change the functionality or layout of a page.
|
||||||
|
|
||||||
|
- If your PR affects the behaviour of a page it should be accompanied by corresponding [Cypress integration tests](/how-to-add-cypress-tests).
|
||||||
|
|
||||||
## Feedback on pull requests
|
## Feedback on pull requests
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user