and my cypress.config.js: ``` const { defineConfi...
# component-testing
j
and my cypress.config.js:
Copy code
const { defineConfig } = require('cypress')
const webpackConfig = require('./cypress/webpack.cypress.config')

module.exports = defineConfig({
  modifyObstructiveCode: true,
  experimentalSourceRewriting: true,
  hideXHR: false,
  chromeWebSecurity: false,

component: {
    devServer: {
      framework: 'react',
      bundler: 'webpack',
      webpackConfig: webpackConfig
    },
    supportFile: 'cypress/support/component.js',
    specPattern: 'cypress/component/**/*.cy.js'
  },
webpack.cypress.config.js:
Copy code
const path = require('path')
const webpack = require('webpack')

module.exports = {
  mode: 'development',
  devtool: false,
  resolve: {
    alias: {
      '@': path.resolve('src')
    },
    modules: [path.join(__dirname, 'modules'), 'node_modules']
  },
  plugins: [
    new webpack.ProvidePlugin({
      React: 'react'
    })
  ],
  module: {
    rules: [
      {
        test: /\.js$/,
        include: path.resolve(__dirname, 'src'),
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env', '@babel/preset-react'],
            plugins: [
              [
                '@babel/plugin-transform-modules-commonjs',
                {
                  loose: true
                }
              ]
            ]
          }
        }
      },
      // For compiling sass
      {
        test: /\.s[ac]ss$/i,
        use: [
          'style-loader',
          {
            loader: 'css-loader',
            options: { url: false }
          },
          'postcss-loader',
          'resolve-url-loader',

          {
            loader: 'sass-loader',
            options: {
              sourceMap: true,
              sassOptions: {
                sourceMapContents: true
              }
            }
          }
        ]
      },
      {
        test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
        type: 'asset'
      }
    ]
  }
}
2 Views