This is a Cypress E2E testing project set up for QA interview purposes.
- Node.js (version specified in
.nvmrc
) - npm or yarn
-
Install Node.js version (if using nvm):
nvm use
-
Install dependencies:
npm install
-
Open Cypress:
npm run cypress:open
npm run cypress:open
- Opens Cypress Test Runner in interactive modenpm run cypress:run
- Runs Cypress tests in headless modenpm run cypress:run:headless
- Runs Cypress tests in headless mode (alias)npm run test
- Runs all testsnpm run test:open
- Opens Cypress Test Runner
fuse-qa-interview/
├── cypress/
│ ├── e2e/ # Test specifications
│ ├── fixtures/ # Test data
│ ├── support/ # Support files and custom commands
│ ├── downloads/ # Downloaded files (gitignored)
│ ├── screenshots/ # Screenshots on failure (gitignored)
│ └── videos/ # Test recordings (gitignored)
├── cypress.config.js # Cypress configuration
├── package.json # Project dependencies and scripts
├── .nvmrc # Node.js version specification
└── README.md # This file
The project is configured with:
- Base URL:
https://dev.fusefinance.com
- Viewport: 1280x720
- Video recording enabled
- Screenshots on failure enabled
- Custom timeouts for better reliability
The project includes several custom commands:
cy.waitForPageLoad()
- Waits for page to fully loadcy.clearSessionStorage()
- Clears session storagecy.clearLocalStorage()
- Clears local storagecy.clearAllStorage()
- Clears both session and local storage
- The project is configured to test against Fuse Finance Dev Environment
- Run
npm run cypress:open
to open the Cypress Test Runner - Create your test files in the
cypress/e2e/
directory - Use the provided fixtures and custom commands as needed
- Use descriptive test names
- Group related tests using
describe
blocks - Use custom commands for common operations
- Keep tests independent and isolated
- Use fixtures for test data
- Follow the Page Object Model pattern for complex applications