1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // in cypress/support/index.ts
- // load type definitions that come with Cypress module
- import path from 'path'
- const rootDir = path.resolve(__dirname, '..', '..', '..')
- import { devServer } from '@cypress/vite-dev-server'
- import coverage from '@cypress/code-coverage/task'
- import browserify from '@cypress/browserify-preprocessor'
- import createBundler from '@bahmutov/cypress-esbuild-preprocessor'
- import { addCucumberPreprocessorPlugin } from '@badeball/cypress-cucumber-preprocessor'
- import createEsbuildPlugin from '@badeball/cypress-cucumber-preprocessor/esbuild'
- const { default: viteConfig } = require(path.resolve(rootDir, 'vite.config.ts'))
- // need to use require for now as importing default throws a type error at runtime
- export const setupNodeEvents = async (
- on: Cypress.PluginEvents,
- config: Cypress.PluginConfigOptions
- ) => {
- const cucumberOptions = {
- ...browserify.defaultOptions,
- typescript: path.join(rootDir, 'node_modules/typescript')
- }
- coverage(on, config)
- // This is required for the preprocessor to be able to generate JSON reports after each run, and more,
- await addCucumberPreprocessorPlugin(on, { ...config, ...cucumberOptions })
- on(
- 'file:preprocessor',
- createBundler({
- plugins: [createEsbuildPlugin(config)]
- })
- )
- on('dev-server:start', (options: Cypress.DevServerConfig) => {
- return devServer({
- ...options,
- viteConfig: {
- ...viteConfig,
- // configFile: path.resolve(rootDir, 'vite.config.ts'),
- define: {
- 'process.env': process.env
- },
- optimizeDeps: {
- include: ['tailwind-merge'] // we need to include the tailwind-merge dependency otherwise the first run of the tests will fail
- }
- }
- })
- })
- return config
- }
|