✅ POM, class structure, constructor for selectors, re-use of repetitive methods
✅ Tests: 10
- UI
- Successfull login & logout
- Unsuccessfull login with incorrect email
- Unsuccessfull login with incorrect password
- Incercept and validate backend call from frontend
- Stubbing a response body and validate the response
- Stubbing a response status without touching server and validate the response
- API
- POST: Create customer record
- GET: List customer records
- PATCH: Update customer record
- DELETE: Delete customer record
✅ Proper validation
✅ Use of intercepts - To validate backend calls through UI
✅ Github Actions setup on push to master branch
✅ Run tests in headless mode: yarn cypress:headless
✅ Cypress commands
✅ Aliases to wait for intercepts
✅ Integrated cypress dashboard for reporting
✅ Gropped API & UI test spec to run separately through node scripts
✅ Conventional commit style
To Run Cypress E2E Tests Locally
# Install Dependencies
yarn
# Run all the tests in headless mode
yarn cypress:headless
# Run the tests in Cypress UI
yarn cypress:open
# Run UI Tests
yarn cypress:ui
# Run API Tests
yarn cypress:api
- Page Objects - Link
- UI tests - Link
- API tests - Link
- Cypress commands - Link
- Intercepts & Alias - Link
- Github Actions workflow - Link
package.json
- Linkcypress.config.js
- Link- Cypress Dashboard Report - Link
.
├── README.md
├── cypress
│ ├── fixtures
│ │ └── example.json
│ ├── support
│ │ ├── Interfaces
│ │ │ ├── IBilling.ts
│ │ │ ├── ICustomer.ts
│ │ │ └── ILogin.ts
│ │ ├── PageObjects
│ │ │ ├── CustomerPage.ts
│ │ │ └── LoginPage.ts
│ │ ├── commands.ts
│ │ ├── e2e.ts
│ │ └── index.d.ts
│ ├── tests
│ │ ├── api
│ │ │ └── customer_api.cy.ts
│ │ └── ui
│ │ ├── customer.cy.ts
│ │ └── login.cy.ts
│ └── tsconfig.json
├── cypress.config.js
├── cypress.env.json
├── package.json
└── yarn.lock
8 directories, 18 files