Skip to content

Repository files navigation

React-ToDoApp React demo Cypress Tests CodeQL Advanced

React + TypeScript + Vite + Cypress

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

Expanding the ESLint configuration

TODO: Try TanStack

If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:

  • Configure the top-level parserOptions property like this:
export default tseslint.config({
  languageOptions: {
    // other options...
    parserOptions: {
      project: ['./tsconfig.node.json', './tsconfig.app.json'],
      tsconfigRootDir: import.meta.dirname,
    },
  },
})
  • Replace tseslint.configs.recommended to tseslint.configs.recommendedTypeChecked or tseslint.configs.strictTypeChecked
  • Optionally add ...tseslint.configs.stylisticTypeChecked
  • Install eslint-plugin-react and update the config:
// eslint.config.js
import react from 'eslint-plugin-react'

export default tseslint.config({
  // Set the react version
  settings: { react: { version: '18.3' } },
  plugins: {
    // Add the react plugin
    react,
  },
  rules: {
    // other rules...
    // Enable its recommended rules
    ...react.configs.recommended.rules,
    ...react.configs['jsx-runtime'].rules,
  },
})

Run Cypress

CI workflow automatically runs Cypress tests on push to main branch and pull requests.

Locally, you can run Cypress using:

npm run cy:open  # Opens Cypress Test Runner
npm run cy:run   # Runs Cypress tests headlessly

Todo:

  • Add cypress (npm install cypress @testing-library/cypress --save-dev)
  • Add cypress config with TypeScript support
    • Create cypress.config.ts
    • Update tsconfig.json for Cypress types
  • Add cypress commands with TypeScript
    • Set up cypress/support/commands.ts
    • Configure cypress/support/e2e.ts
  • Add cypress tests with .cy.ts extension
  • Add cypress fixtures
  • Add Component Testing.

Example TypeScript configuration for Cypress:

// cypress.config.ts
import { defineConfig } from 'cypress'

export default defineConfig({
  e2e: {
    setupNodeEvents(on, config) {
      // implement node event listeners here
    },
  },
})
npm run cy:open
npm run cy:run

About

An example React ToDoApp tutorial.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages