code-coverage icon indicating copy to clipboard operation
code-coverage copied to clipboard

support.js throws an error on "const applicationSourceCoverage = win?.__coverage__.

Open krishollenbeck opened this issue 6 months ago • 1 comments

Logs and screenshots Please provide debug logs by running Cypress from the terminal with DEBUG=code-coverage environment variable set. See the Debugging section of the README file. image

Versions

  • What is this plugin's version? If this is NOT the latest released version, can you try the latest version, please?

"@cypress/code-coverage": "3.12.45",

  • If the plugin worked before in version X but stopped after upgrading to version Y, please try the released versions between X and Y to see where the breaking change was. Appears to be working before this change. https://github.com/cypress-io/code-coverage/commit/1cf7df2f6459ec04e398cdc159922b3d619012eb Version 3.12.32

  • What is the Cypress version? "cypress": "12.14.0",

  • What is your operating system? Windows 11

  • What is the shell? N/A

  • What is the Node version? 18.19.1

  • What is the NPM version? 10.2.4

  • How do you instrument your application? Cypress does not instrument web application code, so you must do it yourself. I am using nyc

  • When running tests, if you open the web application in a regular browser and open DevTools, do you see window.__coverage__ object? Can you paste a screenshot? Tests fail to run because of the error. But I see window.__coverage__ when running my server outside of cypress.

image
  • Is there a .nyc_output folder? Is there a .nyc_output/out.json file? Is it empty? Can you paste at least part of it so we can see the keys and file paths? There is no output folder. Error prevents tests from running.

  • Do you have any custom NYC settings in package.json (nyc object) or in other NYC config files? No

  • Do you run Cypress tests in a Docker container? No

Describe the bug support.js throws an error on const applicationSourceCoverage = win?.__coverage__. I am using a custom webpack loader. So this could simply be an issue with @jsdevtools/coverage-istanbul-loader not understanding how to handle "optional chaining operators". But I could be wrong. Webpack loaders are sort of new to me. Possibly I just need to use something besides @jsdevtools/coverage-istanbul-loader?

Also, I found this same issue reported on stackoverflow. https://stackoverflow.com/questions/78483412/cypress-code-coverage-unexpected-token-win-coverage/78880561#78880561

coverage.webpack.js

module.exports = {
  module: {
    rules: [
      {
        test: /\.(js|ts)$/,
        loader: '@jsdevtools/coverage-istanbul-loader',
        options: { esModules: true },
        enforce: 'post',
        include: require('path').join(__dirname, '..', 'src'),
        exclude: [
          /\.(e2e|spec)\.ts$/,
          /node_modules/,
          /(ngfactory|ngstyle)\.js/
        ]
      }
    ]
  }
};

Link to the repo I currently have no repo. This is currently setup on an internal project. I can maybe make a repo if necessary.

krishollenbeck avatar Aug 16 '24 19:08 krishollenbeck