Introduction
  • Introduction
  • Course Goals
  • What is Cypress
  • Personal Introduction
Getting started with Cypress
  • Writing your first Cypress test
  • Adding a package.json
  • Fixing a broken Cypress installation
  • The most important commands
  • Adding IntelliSense
  • Mocha hooks
  • Cypress configuration
  • Selecting DOM elements
  • Querying by text
  • Aliasing
Interacting with Elements
  • Interacting with Elements - Section Introduction
  • Clicking DOM elements
  • Typing text
  • Radio buttons & checkboxes
  • Select elements
  • Manipulating the value
  • Validating the value
Network Requests & Cypress
  • Network Requests & Cypress - Section Introduction
  • The book search application
  • Intercepting AJAX Requests
  • Cypress.minimatch()
  • cy.route() & cy.server()
  • Waiting for a response
  • Faking AJAX responses
  • Intercepting the response
  • Making network requests
Continuous Integration
  • Continuous Integration - Section Introduction
  • CI using GitHub Actions
  • Cypress Continuous Integration Steps
  • Using a Docker container
  • Flaky tests
  • The Cypress Dashboard
  • Local GitHub Actions
Extending Cypress
  • Extending Cypress - Section Introduction
  • Adding Custom Commands
  • Adding Child Commands
  • Writing Dual Commands
  • Logging Custom Commands
  • Better Command Logging
  • Adding Custom Tasks
  • Combining Tasks & Commands
Cypress Testing Library
  • Cypress Testing Library - Section Introduction
  • Installing Cypress Testing Library
  • Using cy.findByRole()
  • Using accessibility roles
  • Reusing a query result
  • Choosing a Query
Tip & Tricks
  • Tip & Tricks
  • IntelliSense in Visual Studio Code
  • Configuring ESLint
  • Faking Math.random()
  • Overriding the Cypress configuration
  • Data driven tests