Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tsc type definition conflicts, duplicate identifiers in @types/mocha chai etc #7435

Closed
ericblade opened this issue May 20, 2020 · 24 comments
Closed
Labels
existing workaround stage: needs information Not enough info to reproduce the issue topic: typescript type: unexpected behavior User expected result, but got another v4.6.0 🐛 Issue present since 4.6.0

Comments

@ericblade
Copy link

ericblade commented May 20, 2020

Project is https://github.com/ericblade/quagga2

Project has it's own dependency on @types/mocha @types/chai declared. This is so editor support for typescript works correctly.

Running tsc on the project in the build step fails with duplicate definitions.

On top of that, since this is also causing typescript compilation to fail, when I run 'cypress run', which uses webpack-preprocessor to package, cypress just hangs indefinitely, when I would expect it to fail.

Running cypress open does not fail, as for speed reasons, I have configured open to not use webpack-preprocessor.

Reverting to 4.5.0 corrects the issues, and all tests run as normal.

Version of webpack-preprocessor doesn't seem relevant -- I tried both 5.2.1 which is what I used prior to the 4.6.0 upgrade, and 5.4.1, which was the recommended upgrade with cypress 4.6.0.

> @ericblade/quagga2@1.0.5 check-types D:\src\quaggajs
> tsc

node_modules/@types/chai/index.d.ts:19:1 - error TS6200: Definitions of the following identifiers conflict with those in another file: Message, ObjectProperty, ChaiPlugin, AssertionArgs, Operator, OperatorComparable, AssertionError, chai

19 declare namespace Chai {
   ~~~~~~~

  node_modules/cypress/types/chai/index.d.ts:19:1
    19 declare namespace Chai {
       ~~~~~~~
    Conflicts are in this file.

node_modules/@types/mocha/index.d.ts:17:15 - error TS2300: Duplicate identifier 'Mocha'.

17 declare class Mocha {
                 ~~~~~

  node_modules/cypress/types/mocha/index.d.ts:17:15
    17 declare class Mocha {
                     ~~~~~
    'Mocha' was also declared here.
  node_modules/cypress/types/mocha/index.d.ts:242:19
    242 declare namespace Mocha {
                          ~~~~~
    and here.
  node_modules/cypress/types/mocha/index.d.ts:2856:14
    2856     export = Mocha;
                      ~~~~~
    and here.

node_modules/@types/mocha/index.d.ts:242:19 - error TS2300: Duplicate identifier 'Mocha'.      

242 declare namespace Mocha {
                      ~~~~~

  node_modules/cypress/types/mocha/index.d.ts:17:15
    17 declare class Mocha {
                     ~~~~~
    'Mocha' was also declared here.
  node_modules/cypress/types/mocha/index.d.ts:242:19
    242 declare namespace Mocha {
                          ~~~~~
    and here.
  node_modules/cypress/types/mocha/index.d.ts:2856:14
    2856     export = Mocha;
                      ~~~~~
    and here.

node_modules/@types/mocha/index.d.ts:2814:15 - error TS2451: Cannot redeclare block-scoped variable 'mocha'.

2814 declare const mocha: BrowserMocha;
                   ~~~~~

  node_modules/cypress/types/mocha/index.d.ts:2814:15
    2814 declare const mocha: BrowserMocha;
                       ~~~~~
    'mocha' was also declared here.

node_modules/@types/mocha/index.d.ts:2848:6 - error TS2300: Duplicate identifier 'MochaDone'.  

2848 type MochaDone = Mocha.Done;
          ~~~~~~~~~

  node_modules/cypress/types/mocha/index.d.ts:2848:6
    2848 type MochaDone = Mocha.Done;
              ~~~~~~~~~
    'MochaDone' was also declared here.

node_modules/@types/mocha/index.d.ts:2851:6 - error TS2300: Duplicate identifier 'ReporterConstructor'.

2851 type ReporterConstructor = Mocha.ReporterConstructor;
          ~~~~~~~~~~~~~~~~~~~

  node_modules/cypress/types/mocha/index.d.ts:2851:6
    2851 type ReporterConstructor = Mocha.ReporterConstructor;
              ~~~~~~~~~~~~~~~~~~~
    'ReporterConstructor' was also declared here.

node_modules/@types/mocha/index.d.ts:2856:14 - error TS2300: Duplicate identifier 'Mocha'.     

2856     export = Mocha;
                  ~~~~~

  node_modules/cypress/types/mocha/index.d.ts:17:15
    17 declare class Mocha {
                     ~~~~~
    'Mocha' was also declared here.
  node_modules/cypress/types/mocha/index.d.ts:242:19
    242 declare namespace Mocha {
                          ~~~~~
    and here.
  node_modules/cypress/types/mocha/index.d.ts:2856:14
    2856     export = Mocha;
                      ~~~~~
    and here.

node_modules/@types/mocha/index.d.ts:2860:14 - error TS2300: Duplicate identifier 'milliseconds'.

2860     export = milliseconds;
                  ~~~~~~~~~~~~

  node_modules/cypress/types/mocha/index.d.ts:2860:14
    2860     export = milliseconds;
                      ~~~~~~~~~~~~
    'milliseconds' was also declared here.

node_modules/@types/mocha/index.d.ts:2879:14 - error TS2300: Duplicate identifier 'common'.    

2879     export = common;
                  ~~~~~~

  node_modules/cypress/types/mocha/index.d.ts:2879:14
    2879     export = common;
                      ~~~~~~
    'common' was also declared here.

node_modules/cypress/types/chai/index.d.ts:19:1 - error TS6200: Definitions of the following identifiers conflict with those in another file: Message, ObjectProperty, ChaiPlugin, AssertionArgs, Operator, OperatorComparable, AssertionError, chai

19 declare namespace Chai {
   ~~~~~~~

  node_modules/@types/chai/index.d.ts:19:1
    19 declare namespace Chai {
       ~~~~~~~
    Conflicts are in this file.

node_modules/cypress/types/mocha/index.d.ts:17:15 - error TS2300: Duplicate identifier 'Mocha'.
17 declare class Mocha {
                 ~~~~~

  node_modules/@types/mocha/index.d.ts:17:15
    17 declare class Mocha {
                     ~~~~~
    'Mocha' was also declared here.
  node_modules/@types/mocha/index.d.ts:242:19
    242 declare namespace Mocha {
                          ~~~~~
    and here.
  node_modules/@types/mocha/index.d.ts:2856:14
    2856     export = Mocha;
                      ~~~~~
    and here.

node_modules/cypress/types/mocha/index.d.ts:242:19 - error TS2300: Duplicate identifier 'Mocha'.

242 declare namespace Mocha {
                      ~~~~~

  node_modules/@types/mocha/index.d.ts:17:15
    17 declare class Mocha {
                     ~~~~~
    'Mocha' was also declared here.
  node_modules/@types/mocha/index.d.ts:242:19
    242 declare namespace Mocha {
                          ~~~~~
    and here.
  node_modules/@types/mocha/index.d.ts:2856:14
    2856     export = Mocha;
                      ~~~~~
    and here.

node_modules/cypress/types/mocha/index.d.ts:2814:15 - error TS2451: Cannot redeclare block-scoped variable 'mocha'.

2814 declare const mocha: BrowserMocha;
                   ~~~~~

  node_modules/@types/mocha/index.d.ts:2814:15
    2814 declare const mocha: BrowserMocha;
                       ~~~~~
    'mocha' was also declared here.

node_modules/cypress/types/mocha/index.d.ts:2848:6 - error TS2300: Duplicate identifier 'MochaDone'.

2848 type MochaDone = Mocha.Done;
          ~~~~~~~~~

  node_modules/@types/mocha/index.d.ts:2848:6
    2848 type MochaDone = Mocha.Done;
              ~~~~~~~~~
    'MochaDone' was also declared here.

node_modules/cypress/types/mocha/index.d.ts:2851:6 - error TS2300: Duplicate identifier 'ReporterConstructor'.

2851 type ReporterConstructor = Mocha.ReporterConstructor;
          ~~~~~~~~~~~~~~~~~~~

  node_modules/@types/mocha/index.d.ts:2851:6
    2851 type ReporterConstructor = Mocha.ReporterConstructor;
              ~~~~~~~~~~~~~~~~~~~
    'ReporterConstructor' was also declared here.

node_modules/cypress/types/mocha/index.d.ts:2856:14 - error TS2300: Duplicate identifier 'Mocha'.

2856     export = Mocha;
                  ~~~~~

  node_modules/@types/mocha/index.d.ts:17:15
    17 declare class Mocha {
                     ~~~~~
    'Mocha' was also declared here.
  node_modules/@types/mocha/index.d.ts:242:19
    242 declare namespace Mocha {
                          ~~~~~
    and here.
  node_modules/@types/mocha/index.d.ts:2856:14
    2856     export = Mocha;
                      ~~~~~
    and here.

node_modules/cypress/types/mocha/index.d.ts:2860:14 - error TS2300: Duplicate identifier 'milliseconds'.

2860     export = milliseconds;
                  ~~~~~~~~~~~~

  node_modules/@types/mocha/index.d.ts:2860:14
    2860     export = milliseconds;
                      ~~~~~~~~~~~~
    'milliseconds' was also declared here.

node_modules/cypress/types/mocha/index.d.ts:2879:14 - error TS2300: Duplicate identifier 'common'.

2879     export = common;
                  ~~~~~~

  node_modules/@types/mocha/index.d.ts:2879:14
    2879     export = common;
                      ~~~~~~
    'common' was also declared here.


Found 18 errors.
@tgriesser
Copy link
Member

tgriesser commented May 20, 2020

Hey @ericblade - we're still sorting out the best practices for ensuring globals in type definitions among various dependencies don't conflict.

Can you try adding a tsconfig.json inside the cypress folder with:

{
   "extends": "../tsconfig.json",
   "compilerOptions": {
      "types": ["cypress"]
   }
}

and in your base tsconfig.json remove the "cypress" from the "types" dependencies array

"types": [
  "react",
  "mocha",
] /* Type declaration files to be included in compilation. */,

and see if that helps with the issues you're describing?

@ericblade
Copy link
Author

ericblade commented May 20, 2020

Sure, I can try that. If that works, I'm hoping that some other fix can be located though -- i just setup this project so that all my tests are side-by-side with the code, which is a common thing to do (the tests run in both node and cypress, i have some files in cypress/integration that just import them from the directories where the actual tests are). I'll let you know in a few minutes.

@ericblade
Copy link
Author

ericblade commented May 20, 2020

OK, so, doing the change that you suggest works all the way through build and test in 4.5.0. Then I upgrade to 4.6.0, and build works (previously it was what generated the large error stream), after I comment out one test that is outside the cypress directory, that uses cy. Test fails, just hanging during the webpack. Upgrading @cypress/webpack-processor makes no change there.

So, apparently, it's not just the build failing phase that is causing the hang during cypress run. If I remove the use of @cypress/webpack-processor from plugins/index.js, then all tests proceed as normal. (i'm using webpack-processor to allow for proper coverage to work, as when i don't use it, coverage plugin doesn't report anything)

Neither version of webpack-processor seems to work with cypress 4.6.0, in this project, and i'm not sure what else to poke at -- it looks like the process is just hung, though it responds to ctrl-c.

The change to the tsconfig does get the build process working, though. I will consider moving the tests that can only be run in cypress over to the cypress directory.

@jennifer-shehane
Copy link
Member

@ericblade Could you run Cypress in debug mode mode and print the entire set of logs here when it hangs during cypress run?

@jennifer-shehane jennifer-shehane added the v4.6.0 🐛 Issue present since 4.6.0 label May 21, 2020
@jennifer-shehane
Copy link
Member

Sorry, I actually see now you gave us the project.

after I comment out one test that is outside the cypress directory, that uses cy. Test fails, just hanging during the webpack.

Is this during cypress run or cypress open? Is there a specific test you're commenting out because I can't recreate this behavior in either cypress run or cypress open in 4.6.0.

I haven't been able to recreate any hanging behavior in 4.6.0 from the project provided. Could you be more specific on how to replicate this behavior? Thanks!

@jennifer-shehane jennifer-shehane added the stage: needs information Not enough info to reproduce the issue label May 21, 2020
@ericblade
Copy link
Author

Sure, I just cloned it to test that it's happening on a fresh install. Clone my repo, upgrade cypress in the package.json, npm install, npm run cypress:run

Here's as much output as I was able to grab from setting DEBUG=cypress:*

  cypress:server:run project created and opened with config { env: { BUILD_ENV: 'production', codeCoverageTasksRegistered: true }, configFile: 'C:\\src\\quagga2\\cypress.json', video: false, projectRoot: 'C:\\src\\quagga2', projectName: 'quagga2', morgan: false, isTextTerminal: true, socketId: 'bbm1n', report: true, browsers: [ { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 'Chrome', version: '81.0.4044.138', path: 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe', majorVersion: 81 }, { name: 'electron', channel: 'stable', family: 'chromium', displayName: 'Electron', version: '80.0.3987.165', path: '', majorVersion: 80, info: 'Electron is the default browser that comes with Cypress. This is the default browser that runs in headless mode. Selecting this browser is useful when debugging. The version number indicates the underlying Chromium version that Electron uses.' } ], port: 55742, hosts: null, baseUrl: null, projectId: null, userAgent: null, reporter: 'spec', reporterOptions: null, blacklistHosts: 
null, clientRoute: '/__/', xhrRoute: '/xhrs/', socketIoRoute: '/__socket.io', socketIoCookie: '__socket.io', reporterRoute: '/__cypress/reporter', ignoreTestFiles: '*.hot-update.js', testFiles: '**/*.*', defaultCommandTimeout: 4000, requestTimeout: 5000, responseTimeout: 30000, pageLoadTimeout: 60000, execTimeout: 60000, taskTimeout: 60000, videoCompression: 32, videoUploadOnPasses: true, modifyObstructiveCode: true, chromeWebSecurity: true, waitForAnimations: true, animationDistanceThreshold: 5, numTestsKeptInMemory: 0, watchForFileChanges: false, trashAssetsBeforeRuns: true, autoOpen: false, viewportWidth: 1000, viewportHeight: 660, fileServerFolder: 'C:\\src\\quagga2', videosFolder: 'C:\\src\\quagga2\\cypress\\videos', supportFile: 'C:\\src\\quagga2\\cypress\\support\\index.js', fixturesFolder: 'C:\\src\\quagga2\\cypress\\fixtures', integrationFolder: 'C:\\src\\quagga2\\cypress\\integration', screenshotsFolder: 'C:\\src\\quagga2\\cypress\\screenshots', namespace: '__cypress', pluginsFile: 'C:\\src\\quagga2\\cypress\\plugins\\index.js', nodeVersion: 'default', firefoxGcInterval: { runMode: 1, openMode: null }, javascripts: [], experimentalComponentTesting: false, componentFolder: 'C:\\src\\quagga2\\cypress\\component', experimentalGetCookiesSameSite: false, experimentalSourceRewriting: false, cypressEnv: 'production', resolved: { animationDistanceThreshold: { value: 5, from: 'default' }, fileServerFolder: { value: 
'', from: 'default' }, baseUrl: { value: null, from: 'default' }, fixturesFolder: { value: 'cypress/fixtures', from: 'default' }, blacklistHosts: { value: null, from: 'default' }, chromeWebSecurity: { value: true, from: 'default' }, modifyObstructiveCode: { value: true, from: 'default' }, integrationFolder: { value: 'cypress/integration', from: 'default' }, env: { BUILD_ENV: [Object], codeCoverageTasksRegistered: [Object] }, pluginsFile: { value: 'cypress/plugins', from: 'default' }, hosts: { value: null, from: 'default' }, screenshotsFolder: { value: 'cypress/screenshots', from: 'default' }, numTestsKeptInMemory: { value: 0, from: 'config' }, supportFile: { value: 'cypress/support', from: 'default' }, port: { value: null, from: 'default' }, projectId: { value: null, from: 'default' }, videosFolder: { value: 'cypress/videos', from: 'default' }, reporter: { value: 'spec', from: 'default' }, reporterOptions: { value: null, from: 'default' }, ignoreTestFiles: { value: '*.hot-update.js', from: 'default' }, testFiles: { value: '**/*.*', from: 'default' }, defaultCommandTimeout: { value: 4000, from: 'default' }, trashAssetsBeforeRuns: { value: true, from: 'default' }, execTimeout: { value: 60000, from: 'default' }, userAgent: { value: null, from: 'default' }, pageLoadTimeout: { value: 60000, from: 'default' }, viewportWidth: { value: 1000, from: 'default' }, requestTimeout: { value: 5000, from: 'default' }, viewportHeight: { value: 660, from: 'default' }, responseTimeout: { value: 30000, from: 'default' }, video: { value: false, from: 'config' }, taskTimeout: { value: 60000, from: 'default' }, videoCompression: { value: 32, from: 'default' }, videoUploadOnPasses: { value: true, from: 'default' }, watchForFileChanges: { value: false, from: 'config' }, waitForAnimations: { value: true, from: 'default' }, nodeVersion: { value: 'default', from: 'default' }, firefoxGcInterval: { value: [Object], from: 'default' }, componentFolder: { value: 'cypress/component', from: 'default' }, browsers: { value: [Array], from: 'default' }, experimentalGetCookiesSameSite: { value: false, from: 'default' }, experimentalSourceRewriting: { value: false, from: 'default' }, experimentalComponentTesting: { value: false, from: 'default' }, configFile: { value: 'C:\\src\\quagga2\\cypress.json', from: 'plugin' } }, parentTestsFolder: 'C:\\src\\quagga2\\cypress', parentTestsFolderDisplay: 'quagga2\\cypress', supportFolder: 'C:\\src\\quagga2\\cypress\\support', integrationExampleName: 'examples', integrationExamplePath: 'C:\\src\\quagga2\\cypress\\integration\\examples', scaffoldedFiles: [ { name: 'cypress\\integration\\examples\\actions.spec.js' }, { name: 'cypress\\integration\\examples\\aliasing.spec.js' }, { name: 'cypress\\integration\\examples\\assertions.spec.js' }, { name: 'cypress\\integration\\examples\\connectors.spec.js' }, { name: 'cypress\\integration\\examples\\cookies.spec.js' }, { name: 'cypress\\integration\\examples\\cypress_api.spec.js' }, 
{ name: 'cypress\\integration\\examples\\files.spec.js' }, { name: 'cypress\\integration\\examples\\local_storage.spec.js' }, { name: 'cypress\\integration\\examples\\location.spec.js' }, { name: 'cypress\\integration\\examples\\misc.spec.js' }, { name: 'cypress\\integration\\examples\\navigation.spec.js' }, { name: 'cypress\\integration\\examples\\network_requests.spec.js' }, { name: 'cypress\\integration\\examples\\querying.spec.js' }, { name: 'cypress\\integration\\examples\\spies_stubs_clocks.spec.js' }, { name: 'cypress\\integration\\examples\\traversal.spec.js' }, { name: 'cypress\\integration\\examples\\utilities.spec.js' }, { name: 'cypress\\integration\\examples\\viewport.spec.js' }, { name: 'cypress\\integration\\examples\\waiting.spec.js' }, { name: 'cypress\\integration\\examples\\window.spec.js' }, { name: 'cypress\\fixtures\\example.json' }, { name: 'cypress\\support\\commands.js' }, { name: 'cypress\\support\\index.js' }, { name: 'cypress\\plugins\\index.js' } ], resolvedNodeVersion: '12.13.0', state: {}, proxyUrl: 'http://localhost:55742', browserUrl: 'http://localhost:55742/__/', reporterUrl: 'http://localhost:55742/__cypress/reporter', xhrUrl: '__cypress/xhrs/' } +10s
  cypress:server:specs experimentalComponentTesting false +0ms
  cypress:server:specs looking for test specs in the folder: C:\src\quagga2\cypress\integration 
+0ms
  cypress:server:specs there is no spec pattern +0ms
  cypress:server:specs globbing test files "**/*.*" +0ms
  cypress:server:specs glob options { sort: true, absolute: true, nodir: true, cwd: 'C:\\src\\quagga2\\cypress\\integration', ignore: [ 'C:\\src\\quagga2\\cypress\\support\\index.js', 'C:\\src\\quagga2\\cypress\\fixtures\\**\\*' ] } +0ms
  cypress:server:browsers searching for browser { nameOrPath: 'electron', filter: { name: 'electron', channel: 'stable' }, knownBrowsers: [ { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 'Chrome', version: '81.0.4044.138', path: 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe', majorVersion: 81 }, { name: 'electron', channel: 'stable', family: 'chromium', displayName: 'Electron', version: '80.0.3987.165', path: '', majorVersion: 80, info: 'Electron is the default browser that comes with Cypress. This is the default browser that runs in headless mode. Selecting this browser is useful when debugging. The version number indicates the underlying Chromium version that Electron uses.' } ] } +10s
  cypress:server:profilecleaner found 1 profile folders: [ 'C:/Users/Eric/AppData/Roaming/Cypress/Partitions/run-14728' ] +0ms
  cypress:server:profilecleaner finding process by pid: 14728 +1ms
  cypress:server:specs [
  cypress:server:specs   'C:/src/quagga2/cypress/integration/browser.spec.ts',
  cypress:server:specs   'C:/src/quagga2/cypress/integration/universal.spec.ts'
  cypress:server:specs ] +26ms
  cypress:server:specs found spec file C:/src/quagga2/cypress/integration/browser.spec.ts +1ms  
  cypress:server:specs found spec file C:/src/quagga2/cypress/integration/universal.spec.ts +0ms  cypress:server:specs found 2 spec files: [ { name: 'browser.spec.ts', relative: 'cypress\\integration\\browser.spec.ts', absolute: 'C:/src/quagga2/cypress/integration/browser.spec.ts' }, { name: 'universal.spec.ts', relative: 'cypress\\integration\\universal.spec.ts', absolute: 'C:/src/quagga2/cypress/integration/universal.spec.ts' } ] +3ms
  cypress:server:profilecleaner found 0 root level profile matches: [] +18ms
  cypress:server:profilecleaner found 0 profile folders: [] +1ms
┌───────────────────────────────────────┬─────────────┐
│ relative                              │ specType    │
├───────────────────────────────────────┼─────────────┤
│ cypress\integration\browser.spec.ts   │ integration │
├───────────────────────────────────────┼─────────────┤
│ cypress\integration\universal.spec.ts │ integration │
└───────────────────────────────────────┴─────────────┘
  cypress:server:run found '2' specs using spec pattern 'null': [ 'browser.spec.ts', 'universal.spec.ts' ] +275ms
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬───────────┬──────────────┬────────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐        
  cypress:server:util:process_profiler │ (index) │   group   │ processCount │                pids                │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │        
  cypress:server:util:process_profiler ├─────────┼───────────┼──────────────┼────────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤        
  cypress:server:util:process_profiler │    0    │ 'cypress' │      1       │              '15144'               │    2.41    │      1.2       │  192.57  │    146.53    │   192.57    │        
  cypress:server:util:process_profiler │    1    │  'other'  │      5       │ '15044, 11684, 9488, 11988, 16108' │    0.04    │      0.02      │  119.93  │    94.62     │   119.93    │        
  cypress:server:util:process_profiler │    2    │ 'plugin'  │      1       │              '13892'               │     0      │       0        │  100.15  │    100.15    │   100.15    │        
  cypress:server:util:process_profiler │    3    │  'TOTAL'  │      7       │                '-'                 │    2.45    │      1.22      │  412.66  │    291.22    │   412.66    │        
  cypress:server:util:process_profiler └─────────┴───────────┴──────────────┴────────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +11s   
  cypress:server:profilecleaner removing old profile { pid: 14728, folder: 'C:/Users/Eric/AppData/Roaming/Cypress/Partitions/run-14728' } +917ms

====================================================================================================

  (Run Starting)

  cypress:server:run formatting Node version. { version: '12.13.0', path: undefined } +788ms
  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Cypress:    4.6.0
   │
  │ Browser:    Electron 80 (headless)
   │
  │ Specs:      2 found (browser.spec.ts, universal.spec.ts)
   │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


────────────────────────────────────────────────────────────────────────────────────────────────────


  Running:  browser.spec.ts                                                                 (1 of 2)
  cypress:server:run about to run spec { spec: { name: 'browser.spec.ts', relative: 'cypress\\integration\\browser.spec.ts', absolute: 'C:/src/quagga2/cypress/integration/browser.spec.ts', specType: 'integration' }, isHeadless: true, browser: { name: 'electron', channel: 'stable', family: 'chromium', displayName: 'Electron', version: '80.0.3987.165', path: '', majorVersion: 80, info: 'Electron is the default browser that comes with Cypress. This is the default browser that runs in headless mode. Selecting this browser is useful when debugging. The version number indicates the underlying Chromium version that Electron uses.', isHeadless: true, isHeaded: false } } +4ms
  cypress:server:run video recording has been disabled. video: false +0ms
  cypress:server:run waiting for socket to connect and browser to launch... +1ms
  cypress:server:run waiting for socket connection... { id: 'bbm1n' } +0ms
  cypress:server:open_project resetting project state, preparing to launch browser electron for 
spec { name: 'browser.spec.ts', relative: 'cypress\\integration\\browser.spec.ts', absolute: 'C:/src/quagga2/cypress/integration/browser.spec.ts', specType: 'integration' } options { width: 1280, height: 720, show: false, onCrashed: [Function: onCrashed], onNewWindow: [Function: onNewWindow], automationMiddleware: { onAfterResponse: [Function: onAfterResponse] }, projectRoot: 'C:\\src\\quagga2', onWarning: [Function] } +11s
  cypress:server:project resetting project instance C:\src\quagga2 +1s
  cypress:proxy:http:util:buffers resetting buffers +0ms
  cypress:server:server Setting remoteAuth undefined +1s
  cypress:server:server Setting remoteOrigin http://localhost:55742 +0ms
  cypress:server:server Setting remoteStrategy file +0ms
  cypress:server:server Setting remoteHostAndPort null +0ms
  cypress:server:server Setting remoteDocDomain localhost +0ms
  cypress:server:server Setting remoteFileServer http://localhost:55743 +0ms
  cypress:server:server Getting remote state: { auth: undefined, props: null, origin: 'http://localhost:55742', strategy: 'file', visiting: undefined, domainName: 'localhost', fileServer: 'http://localhost:55743' } +1ms
  cypress:server:project project has config { env: { BUILD_ENV: 'production', codeCoverageTasksRegistered: true }, configFile: 'C:\\src\\quagga2\\cypress.json', video: false, projectRoot: 'C:\\src\\quagga2', projectName: 'quagga2', morgan: false, isTextTerminal: true, socketId: 'bbm1n', 
report: true, browsers: [ { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 
'Chrome', version: '81.0.4044.138', path: 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe', majorVersion: 81 }, { name: 'electron', channel: 'stable', family: 'chromium', displayName: 'Electron', version: '80.0.3987.165', path: '', majorVersion: 80, info: 'Electron is the default browser that comes with Cypress. This is the default browser that runs in headless mode. Selecting this browser is useful when debugging. The version number indicates the underlying Chromium version that Electron uses.' } ], port: 55742, hosts: null, baseUrl: null, projectId: 
null, userAgent: null, reporter: 'spec', reporterOptions: null, blacklistHosts: null, clientRoute: '/__/', xhrRoute: '/xhrs/', socketIoRoute: '/__socket.io', socketIoCookie: '__socket.io', reporterRoute: '/__cypress/reporter', ignoreTestFiles: '*.hot-update.js', testFiles: '**/*.*', defaultCommandTimeout: 4000, requestTimeout: 5000, responseTimeout: 30000, pageLoadTimeout: 60000, execTimeout: 60000, taskTimeout: 60000, videoCompression: 32, videoUploadOnPasses: true, modifyObstructiveCode: true, chromeWebSecurity: true, waitForAnimations: true, animationDistanceThreshold: 5, numTestsKeptInMemory: 0, watchForFileChanges: false, trashAssetsBeforeRuns: true, autoOpen: false, viewportWidth: 1000, viewportHeight: 660, fileServerFolder: 'C:\\src\\quagga2', videosFolder: 'C:\\src\\quagga2\\cypress\\videos', supportFile: 'C:\\src\\quagga2\\cypress\\support\\index.js', fixturesFolder: 'C:\\src\\quagga2\\cypress\\fixtures', integrationFolder: 'C:\\src\\quagga2\\cypress\\integration', screenshotsFolder: 'C:\\src\\quagga2\\cypress\\screenshots', namespace: '__cypress', pluginsFile: 'C:\\src\\quagga2\\cypress\\plugins\\index.js', nodeVersion: 'default', firefoxGcInterval: { runMode: 1, openMode: null }, javascripts: [], experimentalComponentTesting: false, componentFolder: 'C:\\src\\quagga2\\cypress\\component', experimentalGetCookiesSameSite: false, experimentalSourceRewriting: false, cypressEnv: 'production', resolved: { animationDistanceThreshold: { value: 5, from: 'default' }, fileServerFolder: { value: '', from: 'default' }, baseUrl: { value: null, from: 'default' }, fixturesFolder: { value: 'cypress/fixtures', from: 'default' }, blacklistHosts: { value: null, from: 'default' }, chromeWebSecurity: { value: 
true, from: 'default' }, modifyObstructiveCode: { value: true, from: 'default' }, integrationFolder: { value: 'cypress/integration', from: 'default' }, env: { BUILD_ENV: [Object], codeCoverageTasksRegistered: [Object] }, pluginsFile: { value: 'cypress/plugins', from: 'default' }, hosts: 
{ value: null, from: 'default' }, screenshotsFolder: { value: 'cypress/screenshots', from: 'default' }, numTestsKeptInMemory: { value: 0, from: 'config' }, supportFile: { value: 'cypress/support', from: 'default' }, port: { value: null, from: 'default' }, projectId: { value: null, from: 
'default' }, videosFolder: { value: 'cypress/videos', from: 'default' }, reporter: { value: 'spec', from: 'default' }, reporterOptions: { value: null, from: 'default' }, ignoreTestFiles: { value: '*.hot-update.js', from: 'default' }, testFiles: { value: '**/*.*', from: 'default' }, defaultCommandTimeout: { value: 4000, from: 'default' }, trashAssetsBeforeRuns: { value: true, from: 
'default' }, execTimeout: { value: 60000, from: 'default' }, userAgent: { value: null, from: 'default' }, pageLoadTimeout: { value: 60000, from: 'default' }, viewportWidth: { value: 1000, from: 'default' }, requestTimeout: { value: 5000, from: 'default' }, viewportHeight: { value: 660, from: 'default' }, responseTimeout: { value: 30000, from: 'default' }, video: { value: false, from: 'config' }, taskTimeout: { value: 60000, from: 'default' }, videoCompression: { value: 32, from: 'default' }, videoUploadOnPasses: { value: true, from: 'default' }, watchForFileChanges: { value: false, from: 'config' }, waitForAnimations: { value: true, from: 'default' }, nodeVersion: { value: 'default', from: 'default' }, firefoxGcInterval: { value: [Object], from: 'default' }, componentFolder: { value: 'cypress/component', from: 'default' }, browsers: { value: [Array], from: 'default' }, experimentalGetCookiesSameSite: { value: false, from: 'default' }, experimentalSourceRewriting: { value: false, from: 'default' }, experimentalComponentTesting: { value: false, from: 'default' }, configFile: { value: 'C:\\src\\quagga2\\cypress.json', from: 'plugin' } }, parentTestsFolder: 'C:\\src\\quagga2\\cypress', parentTestsFolderDisplay: 'quagga2\\cypress', supportFolder: 'C:\\src\\quagga2\\cypress\\support', integrationExampleName: 'examples', integrationExamplePath: 'C:\\src\\quagga2\\cypress\\integration\\examples', scaffoldedFiles: [ { name: 'cypress\\integration\\examples\\actions.spec.js' }, { name: 'cypress\\integration\\examples\\aliasing.spec.js' }, { name: 'cypress\\integration\\examples\\assertions.spec.js' }, { name: 'cypress\\integration\\examples\\connectors.spec.js' }, { name: 'cypress\\integration\\examples\\cookies.spec.js' }, { name: 'cypress\\integration\\examples\\cypress_api.spec.js' }, { name: 'cypress\\integration\\examples\\files.spec.js' }, { name: 'cypress\\integration\\examples\\local_storage.spec.js' }, { name: 'cypress\\integration\\examples\\location.spec.js' }, { name: 'cypress\\integration\\examples\\misc.spec.js' }, { name: 'cypress\\integration\\examples\\navigation.spec.js' }, { name: 'cypress\\integration\\examples\\network_requests.spec.js' }, { name: 'cypress\\integration\\examples\\querying.spec.js' }, { name: 'cypress\\integration\\examples\\spies_stubs_clocks.spec.js' }, { name: 'cypress\\integration\\examples\\traversal.spec.js' }, { name: 'cypress\\integration\\examples\\utilities.spec.js' }, { name: 'cypress\\integration\\examples\\viewport.spec.js' }, { name: 'cypress\\integration\\examples\\waiting.spec.js' }, { name: 'cypress\\integration\\examples\\window.spec.js' }, { name: 'cypress\\fixtures\\example.json' }, { name: 'cypress\\support\\commands.js' }, { name: 'cypress\\support\\index.js' }, { name: 'cypress\\plugins\\index.js' } ], resolvedNodeVersion: '12.13.0', state: {}, proxyUrl: 'http://localhost:55742', 
browserUrl: 'http://localhost:55742/__/', reporterUrl: 'http://localhost:55742/__cypress/reporter', xhrUrl: '__cypress/xhrs/' } +1ms
  cypress:server:project prefixed path for spec { pathToSpec: 'C:/src/quagga2/cypress/integration/browser.spec.ts', type: 'integration', url: '/integration\\browser.spec.ts' } +2ms
  cypress:server:project return path to spec { specType: 'integration', absoluteSpecPath: 'C:/src/quagga2/cypress/integration/browser.spec.ts', prefixedPath: '/integration\\browser.spec.ts', url: 'http://localhost:55742/__/#/tests/integration\\browser.spec.ts' } +2ms
  cypress:server:open_project open project url http://localhost:55742/__/#/tests/integration\browser.spec.ts +6ms
  cypress:server:project project has config { env: { BUILD_ENV: 'production', codeCoverageTasksRegistered: true }, configFile: 'C:\\src\\quagga2\\cypress.json', video: false, projectRoot: 'C:\\src\\quagga2', projectName: 'quagga2', morgan: false, isTextTerminal: true, socketId: 'bbm1n', 
report: true, browsers: [ { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 
'Chrome', version: '81.0.4044.138', path: 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe', majorVersion: 81 }, { name: 'electron', channel: 'stable', family: 'chromium', displayName: 'Electron', version: '80.0.3987.165', path: '', majorVersion: 80, info: 'Electron is the default browser that comes with Cypress. This is the default browser that runs in headless mode. Selecting this browser is useful when debugging. The version number indicates the underlying Chromium version that Electron uses.' } ], port: 55742, hosts: null, baseUrl: null, projectId: 
null, userAgent: null, reporter: 'spec', reporterOptions: null, blacklistHosts: null, clientRoute: '/__/', xhrRoute: '/xhrs/', socketIoRoute: '/__socket.io', socketIoCookie: '__socket.io', reporterRoute: '/__cypress/reporter', ignoreTestFiles: '*.hot-update.js', testFiles: '**/*.*', defaultCommandTimeout: 4000, requestTimeout: 5000, responseTimeout: 30000, pageLoadTimeout: 60000, execTimeout: 60000, taskTimeout: 60000, videoCompression: 32, videoUploadOnPasses: true, modifyObstructiveCode: true, chromeWebSecurity: true, waitForAnimations: true, animationDistanceThreshold: 5, numTestsKeptInMemory: 0, watchForFileChanges: false, trashAssetsBeforeRuns: true, autoOpen: false, viewportWidth: 1000, viewportHeight: 660, fileServerFolder: 'C:\\src\\quagga2', videosFolder: 'C:\\src\\quagga2\\cypress\\videos', supportFile: 'C:\\src\\quagga2\\cypress\\support\\index.js', fixturesFolder: 'C:\\src\\quagga2\\cypress\\fixtures', integrationFolder: 'C:\\src\\quagga2\\cypress\\integration', screenshotsFolder: 'C:\\src\\quagga2\\cypress\\screenshots', namespace: '__cypress', pluginsFile: 'C:\\src\\quagga2\\cypress\\plugins\\index.js', nodeVersion: 'default', firefoxGcInterval: { runMode: 1, openMode: null }, javascripts: [], experimentalComponentTesting: false, componentFolder: 'C:\\src\\quagga2\\cypress\\component', experimentalGetCookiesSameSite: false, experimentalSourceRewriting: false, cypressEnv: 'production', resolved: { animationDistanceThreshold: { value: 5, from: 'default' }, fileServerFolder: { value: '', from: 'default' }, baseUrl: { value: null, from: 'default' }, fixturesFolder: { value: 'cypress/fixtures', from: 'default' }, blacklistHosts: { value: null, from: 'default' }, chromeWebSecurity: { value: 
true, from: 'default' }, modifyObstructiveCode: { value: true, from: 'default' }, integrationFolder: { value: 'cypress/integration', from: 'default' }, env: { BUILD_ENV: [Object], codeCoverageTasksRegistered: [Object] }, pluginsFile: { value: 'cypress/plugins', from: 'default' }, hosts: 
{ value: null, from: 'default' }, screenshotsFolder: { value: 'cypress/screenshots', from: 'default' }, numTestsKeptInMemory: { value: 0, from: 'config' }, supportFile: { value: 'cypress/support', from: 'default' }, port: { value: null, from: 'default' }, projectId: { value: null, from: 
'default' }, videosFolder: { value: 'cypress/videos', from: 'default' }, reporter: { value: 'spec', from: 'default' }, reporterOptions: { value: null, from: 'default' }, ignoreTestFiles: { value: '*.hot-update.js', from: 'default' }, testFiles: { value: '**/*.*', from: 'default' }, defaultCommandTimeout: { value: 4000, from: 'default' }, trashAssetsBeforeRuns: { value: true, from: 
'default' }, execTimeout: { value: 60000, from: 'default' }, userAgent: { value: null, from: 'default' }, pageLoadTimeout: { value: 60000, from: 'default' }, viewportWidth: { value: 1000, from: 'default' }, requestTimeout: { value: 5000, from: 'default' }, viewportHeight: { value: 660, from: 'default' }, responseTimeout: { value: 30000, from: 'default' }, video: { value: false, from: 'config' }, taskTimeout: { value: 60000, from: 'default' }, videoCompression: { value: 32, from: 'default' }, videoUploadOnPasses: { value: true, from: 'default' }, watchForFileChanges: { value: false, from: 'config' }, waitForAnimations: { value: true, from: 'default' }, nodeVersion: { value: 'default', from: 'default' }, firefoxGcInterval: { value: [Object], from: 'default' }, componentFolder: { value: 'cypress/component', from: 'default' }, browsers: { value: [Array], from: 'default' }, experimentalGetCookiesSameSite: { value: false, from: 'default' }, experimentalSourceRewriting: { value: false, from: 'default' }, experimentalComponentTesting: { value: false, from: 'default' }, configFile: { value: 'C:\\src\\quagga2\\cypress.json', from: 'plugin' } }, parentTestsFolder: 'C:\\src\\quagga2\\cypress', parentTestsFolderDisplay: 'quagga2\\cypress', supportFolder: 'C:\\src\\quagga2\\cypress\\support', integrationExampleName: 'examples', integrationExamplePath: 'C:\\src\\quagga2\\cypress\\integration\\examples', scaffoldedFiles: [ { name: 'cypress\\integration\\examples\\actions.spec.js' }, { name: 'cypress\\integration\\examples\\aliasing.spec.js' }, { name: 'cypress\\integration\\examples\\assertions.spec.js' }, { name: 'cypress\\integration\\examples\\connectors.spec.js' }, { name: 'cypress\\integration\\examples\\cookies.spec.js' }, { name: 'cypress\\integration\\examples\\cypress_api.spec.js' }, { name: 'cypress\\integration\\examples\\files.spec.js' }, { name: 'cypress\\integration\\examples\\local_storage.spec.js' }, { name: 'cypress\\integration\\examples\\location.spec.js' }, { name: 'cypress\\integration\\examples\\misc.spec.js' }, { name: 'cypress\\integration\\examples\\navigation.spec.js' }, { name: 'cypress\\integration\\examples\\network_requests.spec.js' }, { name: 'cypress\\integration\\examples\\querying.spec.js' }, { name: 'cypress\\integration\\examples\\spies_stubs_clocks.spec.js' }, { name: 'cypress\\integration\\examples\\traversal.spec.js' }, { name: 'cypress\\integration\\examples\\utilities.spec.js' }, { name: 'cypress\\integration\\examples\\viewport.spec.js' }, { name: 'cypress\\integration\\examples\\waiting.spec.js' }, { name: 'cypress\\integration\\examples\\window.spec.js' }, { name: 'cypress\\fixtures\\example.json' }, { name: 'cypress\\support\\commands.js' }, { name: 'cypress\\support\\index.js' }, { name: 'cypress\\plugins\\index.js' } ], resolvedNodeVersion: '12.13.0', state: {}, proxyUrl: 'http://localhost:55742', 
browserUrl: 'http://localhost:55742/__/', reporterUrl: 'http://localhost:55742/__cypress/reporter', xhrUrl: '__cypress/xhrs/' } +0ms
  cypress:server:open_project launching browser: { name: 'electron', channel: 'stable', family: 
'chromium', displayName: 'Electron', version: '80.0.3987.165', path: '', majorVersion: 80, info: 'Electron is the default browser that comes with Cypress. This is the default browser that runs in headless mode. Selecting this browser is useful when debugging. The version number indicates the underlying Chromium version that Electron uses.', isHeadless: true, isHeaded: false }, spec: cypress\integration\browser.spec.ts +5ms
  cypress:server:browsers getBrowserLauncher { browser: { name: 'electron', channel: 'stable', family: 'chromium', displayName: 'Electron', version: '80.0.3987.165', path: '', majorVersion: 80, info: 'Electron is the default browser that comes with Cypress. This is the default browser that runs in headless mode. Selecting this browser is useful when debugging. The version number indicates the underlying Chromium version that Electron uses.', isHeadless: true, isHeaded: false 
} } +1s
  cypress:server:browsers opening browser { name: 'electron', channel: 'stable', family: 'chromium', displayName: 'Electron', version: '80.0.3987.165', path: '', majorVersion: 80, info: 'Electron is the default browser that comes with Cypress. This is the default browser that runs in headless mode. Selecting this browser is useful when debugging. The version number indicates the underlying Chromium version that Electron uses.', isHeadless: true, isHeaded: false } +819ms      
  cypress:server:browsers:electron open { browser: { name: 'electron', channel: 'stable', family: 'chromium', displayName: 'Electron', version: '80.0.3987.165', path: '', majorVersion: 80, info: 'Electron is the default browser that comes with Cypress. This is the default browser that runs in headless mode. Selecting this browser is useful when debugging. The version number indicates the underlying Chromium version that Electron uses.', isHeadless: true, isHeaded: false }, url: 'http://localhost:55742/__/#/tests/integration\\browser.spec.ts' } +0ms
  cypress:server:saved_state noop saved state +12s
  cypress:server:browsers:electron received saved state {} +0ms
  cypress:server:browsers:electron browser window options { width: 1280, height: 720, show: false, automationMiddleware: { onAfterResponse: [Function: onAfterResponse] }, projectRoot: 'C:\\src\\quagga2', browsers: [ { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 'Chrome', version: '81.0.4044.138', path: 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe', majorVersion: 81 }, { name: 'electron', channel: 'stable', family: 'chromium', displayName: 'Electron', version: '80.0.3987.165', path: '', majorVersion: 80, info: 'Electron is the default browser that comes with Cypress. This is the default browser that runs in headless mode. Selecting this browser is useful when debugging. The version number indicates the underlying Chromium version that Electron uses.' } ], proxyUrl: 'http://localhost:55742', userAgent: null, proxyServer: 'http://localhost:55742', socketIoRoute: '/__socket.io', chromeWebSecurity: true, url: 'http://localhost:55742/__/#/tests/integration\\browser.spec.ts', isTextTerminal: true, browser: { name: 'electron', channel: 'stable', family: 'chromium', displayName: 'Electron', version: '80.0.3987.165', path: '', majorVersion: 80, info: 'Electron is the default browser that comes 
with Cypress. This is the default browser that runs in headless mode. Selecting this browser is 
useful when debugging. The version number indicates the underlying Chromium version that Electron uses.', isHeadless: true, isHeaded: false }, x: null, y: null, devTools: false, minWidth: 100, minHeight: 100, contextMenu: true, partition: 'persist:run-15144', trackState: { width: 'browserWidth', height: 'browserHeight', x: 'browserX', y: 'browserY', devTools: 'isBrowserDevToolsOpen' }, frame: true, recordFrameRate: null, webPreferences: { partition: null, webSecurity: true, nodeIntegration: false, backgroundThrottling: false } } +1ms
  cypress:server:plugins plugin event registered? { event: 'before:browser:launch', isRegistered: false } +3s
  cypress:server:browsers:electron launching browser window to url: http://localhost:55742/__/#/tests/integration\browser.spec.ts +1ms
  cypress:server:windows removing all electron extensions [] +0ms
  cypress:server:browsers:electron debugger attached +21ms
  cypress:server:browsers:electron debugger: sending Browser.getVersion with params undefined +0ms
  cypress:server:browsers:electron clearing cache +2ms
  cypress:server:browsers:electron debugger: received response to Browser.getVersion: { jsVersion: '8.0.426.27', product: 'Chrome/80.0.3987.165', protocolVersion: '1.3', revision: '@7058a043ced97a879084e225f1060df78d0b83c0', userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/4.6.0 Chrome/80.0.3987.165 Electron/8.3.0 Safari/537.36' } +0ms
  cypress:server:routes Serving Cypress front-end by requested URL: /__/ +0ms
  cypress:server:server Getting remote state: { auth: undefined, props: null, origin: 'http://localhost:55742', strategy: 'file', visiting: undefined, domainName: 'localhost', fileServer: 'http://localhost:55743' } +1s
  cypress:server:runner serving runner index.html with config { version: '4.6.0', platform: 'win32', arch: 'x64', projectName: 'quagga2' } +0ms
  cypress:server:runner env object has the following keys: BUILD_ENV, codeCoverageTasksRegistered +0ms
  cypress:server:browsers:electron debugger: enable Console and Network +2s
  cypress:server:browsers:electron debugger: sending Console.enable with params undefined +0ms
  cypress:server:browsers:electron debugger: received response to Console.enable: {} +23ms
  cypress:server:browsers:electron maybe recording video { onScreencastFrame: undefined } +1ms  
  cypress:server:browsers browser opened +2s
  cypress:server:server Got CONNECT request from localhost:55742 +2s
  cypress:https-proxy Writing browserSocket connection headers { url: 'localhost:55742', headLength: 0, headers: { host: 'localhost:55742', 'proxy-connection': 'keep-alive', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/4.6.0 Chrome/80.0.3987.165 Electron/8.3.0 Safari/537.36' } } +5s
  cypress:https-proxy Got first head bytes { url: 'localhost:55742', head: 'GET /__socket.io/?EIO=3&transport=websocket HTTP/1.1\r\nHost: loca' } +2ms
  cypress:server:server HTTPS request does not match URL: https://localhost:55742 with props: null +3ms
  cypress:https-proxy Making connection to localhost:55742 +0ms
  cypress:https-proxy getting proxy URL { port: 55742, serverPort: 55742, sniPort: 55744, url: 'https://localhost:55742' } +0ms
  cypress:network:connect successfully connected { opts: { port: '55742', host: 'localhost', getDelayMsForRetry: [Function: getDelayForRetry] }, iteration: 0 } +0ms
  cypress:https-proxy received upstreamSocket callback for request { port: '55742', hostname: 'localhost', err: undefined } +9ms
  cypress:server:util:socket_whitelist whitelisting socket { localPort: 55754 } +0ms
  cypress:server:server Got UPGRADE request from /__socket.io/?EIO=3&transport=websocket +10ms  
  cypress:server:util:socket_whitelist is incoming request whitelisted? { isWhitelisted: true, reqUrl: '/__socket.io/?EIO=3&transport=websocket', remotePort: 55754, remoteAddress: '127.0.0.1' 
} +1ms
  cypress:server:socket socket connected +0ms
  cypress:server:browsers:electron console message: { column: 32, level: 'log', line: 185057, source: 'console-api', text: 'console.clear', url: 'http://localhost:55742/__cypress/runner/cypress_runner.js' } +372ms
  cypress:server:run got socket connection { id: 'bbm1n' } +4s
  cypress:server:run socket connected { socketId: 'bbm1n' } +0ms
  cypress:server:controllers handle iframe { test: 'integration/browser.spec.ts' } +0ms
  cypress:server:controllers get specs { spec: 'integration/browser.spec.ts' } +0ms
  cypress:server:path_helpers get absolute path to spec { spec: 'integration/browser.spec.ts' } 
+0ms
  cypress:server:path_helpers resolved path C:\src\quagga2\cypress\integration\browser.spec.ts +1ms
  cypress:server:controllers converted integration/browser.spec.ts to C:\src\quagga2\cypress\integration\browser.spec.ts +1ms
  cypress:server:controllers test url for file { file: 'cypress\\integration\\browser.spec.ts', 
url: '/__cypress/tests?p=cypress\\integration\\browser.spec.ts' } +0ms
  cypress:server:controllers test url for file { file: 'cypress\\support\\index.js', url: '/__cypress/tests?p=cypress\\support\\index.js' } +1ms
  cypress:server:server Getting remote state: { auth: undefined, props: null, origin: 'http://localhost:55742', strategy: 'file', visiting: undefined, domainName: 'localhost', fileServer: 'http://localhost:55743' } +139ms
  cypress:server:controllers iframe integration/browser.spec.ts options { title: 'integration/browser.spec.ts', domain: 'localhost', scripts: '[{"absolute":"C:\\\\src\\\\quagga2\\\\cypress\\\\support\\\\index.js","relative":"cypress\\\\support\\\\index.js","relativeUrl":"/__cypress/tests?p=cypress\\\\support\\\\index.js"},{"absolute":"C:\\\\src\\\\quagga2\\\\cypress\\\\integration\\\\browser.spec.ts","relative":"cypress\\\\integration\\\\browser.spec.ts","relativeUrl":"/__cypress/tests?p=cypress\\\\integration\\\\browser.spec.ts"}]' } +1ms
  cypress:server:browsers:electron console message: { column: 32, level: 'log', line: 185057, source: 'console-api', text: 'console.clear', url: 'http://localhost:55742/__cypress/runner/cypress_runner.js' } +71ms
  cypress:server:socket watch:test:file { name: 'browser.spec.ts', relative: 'cypress\\integration\\browser.spec.ts', absolute: 'C:/src/quagga2/cypress/integration/browser.spec.ts', specType: 
'integration' } +184ms
  cypress:server:plugins:child execute plugin event: file:preprocessor ({ eventId: 2, invocationId: 'inv1' }) +6s
  cypress:webpack get C:\src\quagga2\cypress\integration\browser.spec.ts +9s
  cypress:webpack load default options +0ms
  cypress:webpack setting devtool to inline-source-map +1ms
  cypress:webpack webpackOptions: { entry: [ 'C:\\src\\quagga2\\cypress\\integration\\browser.spec.ts' ], devtool: 'inline-source-map', module: { rules: [ [Object], [Object] ] }, resolve: { extensions: [ '.ts', '.tsx', '.js', '.jsx' ], modules: [ 'C:\\src\\quagga2\\src', 'node_modules' ] }, node: { fs: 'empty' }, output: { path: 'C:\\Users\\Eric\\AppData\\Roaming\\Cypress\\cy\\production\\projects\\quagga2-efc2ee5594a2dc34ec76275aa78c739e\\bundles\\cypress\\integration', filename: 'browser.spec.ts.js' }, devServer: { contentBase: './', hot: true }, plugins: [ DefinePlugin { definitions: [Object] } ], optimization: { minimize: false }, mode: 'production' } +1ms    
  cypress:webpack watchOptions: {} +1ms
  cypress:webpack input: C:\src\quagga2\cypress\integration\browser.spec.ts +0ms
  cypress:webpack output: C:\Users\Eric\AppData\Roaming\Cypress\cy\production\projects\quagga2-efc2ee5594a2dc34ec76275aa78c739e\bundles\cypress\integration\browser.spec.ts.js +0ms
  cypress:server:socket watching spec with config { name: 'browser.spec.ts', relative: 'cypress\\integration\\browser.spec.ts', absolute: 'C:/src/quagga2/cypress/integration/browser.spec.ts', 
specType: 'integration' } +0ms
  cypress:server:socket will watch test file path 'cypress\\integration\\browser.spec.ts' +0ms  
  cypress:server:preprocessor getting file cypress\integration\browser.spec.ts +0ms
  cypress:server:preprocessor getFile C:\src\quagga2\cypress\integration\browser.spec.ts +0ms   
  cypress:server:appdata path: C:\Users\Eric\AppData\Roaming\Cypress\cy\production\projects\quagga2-efc2ee5594a2dc34ec76275aa78c739e\bundles\cypress\integration\browser.spec.ts +5s
  cypress:server:plugins plugin event registered? { event: 'file:preprocessor', isRegistered: true } +3s
  cypress:server:plugins execute plugin event 'file:preprocessor' Node 'v12.13.0' with args: EventEmitter { _events: [Object: null prototype] { rerun: [Function] }, _eventsCount: 1, _maxListeners: undefined, filePath: 'C:\\src\\quagga2\\cypress\\integration\\browser.spec.ts', shouldWatch: false, outputPath: 'C:\\Users\\Eric\\AppData\\Roaming\\Cypress\\cy\\production\\projects\\quagga2-efc2ee5594a2dc34ec76275aa78c739e\\bundles\\cypress\\integration\\browser.spec.ts' } undefined undefined +1ms
  cypress:server:plugins call event file:preprocessor for invocation id inv1 +1ms
  cypress:server:controllers:spec request for { spec: 'cypress\\support\\index.js' } +0ms
  cypress:server:preprocessor getting file cypress\support\index.js +40ms
  cypress:server:preprocessor getFile C:\src\quagga2\cypress\support\index.js +0ms
  cypress:server:appdata path: C:\Users\Eric\AppData\Roaming\Cypress\cy\production\projects\quagga2-efc2ee5594a2dc34ec76275aa78c739e\bundles\cypress\support\index.js +39ms
  cypress:server:plugins plugin event registered? { event: 'file:preprocessor', isRegistered: true } +37ms
  cypress:server:plugins execute plugin event 'file:preprocessor' Node 'v12.13.0' with args: EventEmitter { _events: [Object: null prototype] { rerun: [Function] }, _eventsCount: 1, _maxListeners: undefined, filePath: 'C:\\src\\quagga2\\cypress\\support\\index.js', shouldWatch: false, outputPath: 'C:\\Users\\Eric\\AppData\\Roaming\\Cypress\\cy\\production\\projects\\quagga2-efc2ee5594a2dc34ec76275aa78c739e\\bundles\\cypress\\support\\index.js' } undefined undefined +1ms      
  cypress:server:plugins call event file:preprocessor for invocation id inv2 +0ms
  cypress:server:controllers:spec request for { spec: 'cypress\\integration\\browser.spec.ts' } 
+3ms
  cypress:server:preprocessor getting file cypress\integration\browser.spec.ts +3ms
  cypress:server:preprocessor getFile C:\src\quagga2\cypress\integration\browser.spec.ts +1ms   
  cypress:server:plugins plugin event registered? { event: 'file:preprocessor', isRegistered: true } +2ms
  cypress:server:preprocessor headless and already processed +0ms
  cypress:server:server Got CONNECT request from localhost:55742 +116ms
  cypress:https-proxy Writing browserSocket connection headers { url: 'localhost:55742', headLength: 0, headers: { host: 'localhost:55742', 'proxy-connection': 'keep-alive', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Cypress/4.6.0 Chrome/80.0.3987.165 Electron/8.3.0 Safari/537.36' } } +256ms
  cypress:server:run browser launched +628ms
  cypress:server:plugins:child execute plugin event: file:preprocessor ({ eventId: 2, invocationId: 'inv2' }) +3s
  cypress:webpack get C:\src\quagga2\cypress\support\index.js +3s
  cypress:webpack load default options +0ms
  cypress:webpack setting devtool to inline-source-map +0ms
  cypress:webpack webpackOptions: { entry: [ 'C:\\src\\quagga2\\cypress\\support\\index.js' ], devtool: 'inline-source-map', module: { rules: [ [Object], [Object] ] }, resolve: { extensions: [ '.ts', '.tsx', '.js', '.jsx' ], modules: [ 'C:\\src\\quagga2\\src', 'node_modules' ] }, node: { fs: 'empty' }, output: { path: 'C:\\Users\\Eric\\AppData\\Roaming\\Cypress\\cy\\production\\projects\\quagga2-efc2ee5594a2dc34ec76275aa78c739e\\bundles\\cypress\\support', filename: 'index.js' }, devServer: { contentBase: './', hot: true }, plugins: [ DefinePlugin { definitions: [Object] } ], optimization: { minimize: false }, mode: 'production' } +0ms
  cypress:webpack watchOptions: {} +1ms
  cypress:webpack input: C:\src\quagga2\cypress\support\index.js +0ms
  cypress:webpack output: C:\Users\Eric\AppData\Roaming\Cypress\cy\production\projects\quagga2-efc2ee5594a2dc34ec76275aa78c739e\bundles\cypress\support\index.js +0ms
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬────────────┬──────────────┬───────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐        
  cypress:server:util:process_profiler │ (index) │   group    │ processCount │               pids                │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │        
  cypress:server:util:process_profiler ├─────────┼────────────┼──────────────┼───────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤        
  cypress:server:util:process_profiler │    0    │ 'cypress'  │      1       │              '15144'              │    2.24    │      1.55      │  226.5   │    173.18    │    226.5    │        
  cypress:server:util:process_profiler │    1    │  'other'   │      5       │ '15044, 11684, 8432, 13936, 7620' │    1.04    │      0.36      │  182.74  │    123.99    │   182.74    │        
  cypress:server:util:process_profiler │    2    │  'plugin'  │      1       │              '13892'              │    1.83    │      0.91      │  118.57  │    109.36    │   118.57    │        
  cypress:server:util:process_profiler │    3    │ 'Electron' │      1       │              '15116'              │     0      │       0        │  108.3   │    108.3     │    108.3    │        
  cypress:server:util:process_profiler │    4    │  'TOTAL'   │      8       │                '-'                │    5.11    │      2.52      │  636.11  │    406.19    │   636.11    │        
  cypress:server:util:process_profiler └─────────┴────────────┴──────────────┴───────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +11s   
[BABEL] Note: The code generator has deoptimised the styling of C:\src\quagga2\node_modules\lodash\lodash.js as it exceeds the max of 500KB.
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬────────────┬──────────────┬─────────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐      
  cypress:server:util:process_profiler │ (index) │   group    │ processCount │                pids                 │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │      
  cypress:server:util:process_profiler ├─────────┼────────────┼──────────────┼─────────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤      
  cypress:server:util:process_profiler │    0    │  'other'   │      5       │ '15044, 11684, 13992, 15064, 15404' │    0.02    │      0.27      │  182.75  │    138.68    │   182.75    │      
  cypress:server:util:process_profiler │    1    │ 'cypress'  │      1       │               '15144'               │    0.92    │      1.39      │  173.12  │    173.17    │    226.5    │      
  cypress:server:util:process_profiler │    2    │  'plugin'  │      1       │               '13892'               │    6.9     │      2.91      │  163.49  │    127.4     │   163.49    │      
  cypress:server:util:process_profiler │    3    │ 'Electron' │      1       │               '15116'               │    0.19    │      0.1       │  96.55   │    102.43    │    108.3    │      
  cypress:server:util:process_profiler │    4    │  'TOTAL'   │      8       │                 '-'                 │    8.03    │      3.9       │  615.91  │    458.62    │   636.11    │      
  cypress:server:util:process_profiler └─────────┴────────────┴──────────────┴─────────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +11s 
  cypress:webpack finished bundling C:\Users\Eric\AppData\Roaming\Cypress\cy\production\projects\quagga2-efc2ee5594a2dc34ec76275aa78c739e\bundles\cypress\support\index.js +14s
  cypress:server:plugins promise resolved for id 'inv2' with value C:\Users\Eric\AppData\Roaming\Cypress\cy\production\projects\quagga2-efc2ee5594a2dc34ec76275aa78c739e\bundles\cypress\support\index.js +0ms
  cypress:server:controllers:spec sending spec { filePath: 'C:\\Users\\Eric\\AppData\\Roaming\\Cypress\\cy\\production\\projects\\quagga2-efc2ee5594a2dc34ec76275aa78c739e\\bundles\\cypress\\support\\index.js' } +17s
Hash: e6cb8bcba0cf82867dfc
Version: webpack 4.43.0
Time: 14448ms
Built at: 05/21/2020 3:17:45 AM
   Asset      Size  Chunks             Chunk Names
index.js  46.6 KiB       0  [emitted]  main
Entrypoint main = index.js
[0] multi ./cypress/support/index.js 28 bytes {0} [built]
[1] ./cypress/support/index.js 709 bytes {0} [built]
[2] ./cypress/support/commands.js 837 bytes {0} [built]
[3] ./node_modules/@cypress/code-coverage/support.js 7.51 KiB {0} [built]
[4] ./node_modules/@cypress/code-coverage/support-utils.js 2.12 KiB {0} [built]
[BABEL] Note: The code generator has deoptimised the styling of C:\src\quagga2\node_modules\nise\nise.js as it exceeds the max of 500KB.
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬────────────┬──────────────┬───────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐        
  cypress:server:util:process_profiler │ (index) │   group    │ processCount │               pids                │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │        
  cypress:server:util:process_profiler ├─────────┼────────────┼──────────────┼───────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤        
  cypress:server:util:process_profiler │    0    │  'plugin'  │      1       │              '13892'              │   16.42    │      6.29      │  386.34  │    192.14    │   386.34    │        
  cypress:server:util:process_profiler │    1    │  'other'   │      5       │ '15044, 11684, 8536, 6892, 17220' │     0      │      0.22      │  182.79  │    147.5     │   182.79    │        
  cypress:server:util:process_profiler │    2    │ 'cypress'  │      1       │              '15144'              │    0.07    │      1.13      │  175.92  │    173.72    │    226.5    │        
  cypress:server:util:process_profiler │    3    │ 'Electron' │      1       │              '15116'              │    0.22    │      0.14      │  108.99  │    104.61    │   108.99    │        
  cypress:server:util:process_profiler │    4    │  'TOTAL'   │      8       │                '-'                │   16.72    │      6.46      │  854.04  │    537.7     │   854.04    │        
  cypress:server:util:process_profiler └─────────┴────────────┴──────────────┴───────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +11s   
  cypress:webpack warnings for C:\Users\Eric\AppData\Roaming\Cypress\cy\production\projects\quagga2-efc2ee5594a2dc34ec76275aa78c739e\bundles\cypress\integration\browser.spec.ts.js +20s        
  cypress:webpack [
  cypress:webpack   './node_modules/mocha/lib/mocha.js 182:20-37\n' +
  cypress:webpack     'Critical dependency: the request of a dependency is an expression\n' +   
  cypress:webpack     '    at CommonJsRequireContextDependency.getWarnings (C:\\src\\quagga2\\node_modules\\webpack\\lib\\dependencies\\ContextDependency.js:40:18)\n' +
  cypress:webpack     '    at Compilation.reportDependencyErrorsAndWarnings (C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1454:24)\n' +
  cypress:webpack     '    at C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1258:10\n' +
  cypress:webpack     '    at AsyncSeriesHook.eval [as callAsync] (eval at create (C:\\src\\quagga2\\node_modules\\tapable\\lib\\HookCodeFactory.js:33:10), <anonymous>:24:1)\n' +
  cypress:webpack     '    at AsyncSeriesHook.lazyCompileHook (C:\\src\\quagga2\\node_modules\\tapable\\lib\\Hook.js:154:20)\n' +
  cypress:webpack     '    at Compilation.finish (C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1253:28)\n' +
  cypress:webpack     '    at C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compiler.js:672:17\n' +
  cypress:webpack     '    at eval (eval at create (C:\\src\\quagga2\\node_modules\\tapable\\lib\\HookCodeFactory.js:33:10), <anonymous>:11:1)\n' +
  cypress:webpack     '    at C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1185:12\n' +
  cypress:webpack     '    at C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1097:9\n' +
  cypress:webpack     '    at processTicksAndRejections (internal/process/task_queues.js:75:11)\n' +
  cypress:webpack     ' @ ./node_modules/mocha/browser-entry.js\n' +
  cypress:webpack     ' @ ./src/analytics/test/browser/result_collector.spec.ts\n' +
  cypress:webpack     ' @ ./cypress/integration/browser.spec.ts\n' +
  cypress:webpack     ' @ multi ./cypress/integration/browser.spec.ts',
  cypress:webpack   './node_modules/mocha/lib/mocha.js 187:24-70\n' +
  cypress:webpack     'Critical dependency: the request of a dependency is an expression\n' +   
  cypress:webpack     '    at CommonJsRequireContextDependency.getWarnings (C:\\src\\quagga2\\node_modules\\webpack\\lib\\dependencies\\ContextDependency.js:40:18)\n' +
  cypress:webpack     '    at Compilation.reportDependencyErrorsAndWarnings (C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1454:24)\n' +
  cypress:webpack     '    at C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1258:10\n' +
  cypress:webpack     '    at AsyncSeriesHook.eval [as callAsync] (eval at create (C:\\src\\quagga2\\node_modules\\tapable\\lib\\HookCodeFactory.js:33:10), <anonymous>:24:1)\n' +
  cypress:webpack     '    at AsyncSeriesHook.lazyCompileHook (C:\\src\\quagga2\\node_modules\\tapable\\lib\\Hook.js:154:20)\n' +
  cypress:webpack     '    at Compilation.finish (C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1253:28)\n' +
  cypress:webpack     '    at C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compiler.js:672:17\n' +
  cypress:webpack     '    at eval (eval at create (C:\\src\\quagga2\\node_modules\\tapable\\lib\\HookCodeFactory.js:33:10), <anonymous>:11:1)\n' +
  cypress:webpack     '    at C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1185:12\n' +
  cypress:webpack     '    at C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1097:9\n' +
  cypress:webpack     '    at processTicksAndRejections (internal/process/task_queues.js:75:11)\n' +
  cypress:webpack     ' @ ./node_modules/mocha/browser-entry.js\n' +
  cypress:webpack     ' @ ./src/analytics/test/browser/result_collector.spec.ts\n' +
  cypress:webpack     ' @ ./cypress/integration/browser.spec.ts\n' +
  cypress:webpack     ' @ multi ./cypress/integration/browser.spec.ts',
  cypress:webpack   './node_modules/mocha/lib/mocha.js 225:17-30\n' +
  cypress:webpack     'Critical dependency: the request of a dependency is an expression\n' +   
  cypress:webpack     '    at CommonJsRequireContextDependency.getWarnings (C:\\src\\quagga2\\node_modules\\webpack\\lib\\dependencies\\ContextDependency.js:40:18)\n' +
  cypress:webpack     '    at Compilation.reportDependencyErrorsAndWarnings (C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1454:24)\n' +
  cypress:webpack     '    at C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1258:10\n' +
  cypress:webpack     '    at AsyncSeriesHook.eval [as callAsync] (eval at create (C:\\src\\quagga2\\node_modules\\tapable\\lib\\HookCodeFactory.js:33:10), <anonymous>:24:1)\n' +
  cypress:webpack     '    at AsyncSeriesHook.lazyCompileHook (C:\\src\\quagga2\\node_modules\\tapable\\lib\\Hook.js:154:20)\n' +
  cypress:webpack     '    at Compilation.finish (C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1253:28)\n' +
  cypress:webpack     '    at C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compiler.js:672:17\n' +
  cypress:webpack     '    at eval (eval at create (C:\\src\\quagga2\\node_modules\\tapable\\lib\\HookCodeFactory.js:33:10), <anonymous>:11:1)\n' +
  cypress:webpack     '    at C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1185:12\n' +
  cypress:webpack     '    at C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1097:9\n' +
  cypress:webpack     '    at processTicksAndRejections (internal/process/task_queues.js:75:11)\n' +
  cypress:webpack     ' @ ./node_modules/mocha/browser-entry.js\n' +
  cypress:webpack     ' @ ./src/analytics/test/browser/result_collector.spec.ts\n' +
  cypress:webpack     ' @ ./cypress/integration/browser.spec.ts\n' +
  cypress:webpack     ' @ multi ./cypress/integration/browser.spec.ts',
  cypress:webpack   './node_modules/mocha/lib/mocha.js 263:26-39\n' +
  cypress:webpack     'Critical dependency: the request of a dependency is an expression\n' +   
  cypress:webpack     '    at CommonJsRequireContextDependency.getWarnings (C:\\src\\quagga2\\node_modules\\webpack\\lib\\dependencies\\ContextDependency.js:40:18)\n' +
  cypress:webpack     '    at Compilation.reportDependencyErrorsAndWarnings (C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1454:24)\n' +
  cypress:webpack     '    at C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1258:10\n' +
  cypress:webpack     '    at AsyncSeriesHook.eval [as callAsync] (eval at create (C:\\src\\quagga2\\node_modules\\tapable\\lib\\HookCodeFactory.js:33:10), <anonymous>:24:1)\n' +
  cypress:webpack     '    at AsyncSeriesHook.lazyCompileHook (C:\\src\\quagga2\\node_modules\\tapable\\lib\\Hook.js:154:20)\n' +
  cypress:webpack     '    at Compilation.finish (C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1253:28)\n' +
  cypress:webpack     '    at C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compiler.js:672:17\n' +
  cypress:webpack     '    at eval (eval at create (C:\\src\\quagga2\\node_modules\\tapable\\lib\\HookCodeFactory.js:33:10), <anonymous>:11:1)\n' +
  cypress:webpack     '    at C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1185:12\n' +
  cypress:webpack     '    at C:\\src\\quagga2\\node_modules\\webpack\\lib\\Compilation.js:1097:9\n' +
  cypress:webpack     '    at processTicksAndRejections (internal/process/task_queues.js:75:11)\n' +
  cypress:webpack     ' @ ./node_modules/mocha/browser-entry.js\n' +
  cypress:webpack     ' @ ./src/analytics/test/browser/result_collector.spec.ts\n' +
  cypress:webpack     ' @ ./cypress/integration/browser.spec.ts\n' +
  cypress:webpack     ' @ multi ./cypress/integration/browser.spec.ts',
  cypress:webpack   'asset size limit: The following asset(s) exceed the recommended size limit 
(244 KiB).\n' +
  cypress:webpack     'This can impact web performance.\n' +
  cypress:webpack     'Assets: \n' +
  cypress:webpack     '  browser.spec.ts.js (9.49 MiB)',
  cypress:webpack   'entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.\n' +
  cypress:webpack     'Entrypoints:\n' +
  cypress:webpack     '  main (9.49 MiB)\n' +
  cypress:webpack     '      browser.spec.ts.js\n',
  cypress:webpack   'webpack performance recommendations: \n' +
  cypress:webpack     'You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application.\n' +
  cypress:webpack     'For more info visit https://webpack.js.org/guides/code-splitting/'       
  cypress:webpack ] +0ms
  cypress:server:plugins promise resolved for id 'inv1' with value C:\Users\Eric\AppData\Roaming\Cypress\cy\production\projects\quagga2-efc2ee5594a2dc34ec76275aa78c739e\bundles\cypress\integration\browser.spec.ts.js +21s
  cypress:server:controllers:spec sending spec { filePath: 'C:\\Users\\Eric\\AppData\\Roaming\\Cypress\\cy\\production\\projects\\quagga2-efc2ee5594a2dc34ec76275aa78c739e\\bundles\\cypress\\integration\\browser.spec.ts.js' } +21s
  cypress:webpack finished bundling C:\Users\Eric\AppData\Roaming\Cypress\cy\production\projects\quagga2-efc2ee5594a2dc34ec76275aa78c739e\bundles\cypress\integration\browser.spec.ts.js +7ms   
Hash: 426a71302d118ceafecb
Version: webpack 4.43.0
Time: 34907ms
Built at: 05/21/2020 3:18:05 AM
             Asset      Size  Chunks                    Chunk Names
browser.spec.ts.js  9.49 MiB       0  [emitted]  [big]  main
Entrypoint main [big] = browser.spec.ts.js
  [1] ./node_modules/mocha/browser-entry.js 4.19 KiB {0} [built]
  [2] ./node_modules/chai/index.js 39 bytes {0} [built]
  [3] ./node_modules/@babel/runtime/regenerator/index.js 48 bytes {0} [built]
  [4] ./node_modules/process/browser.js 4.96 KiB {0} [built]
  [5] (webpack)/buildin/global.js 475 bytes {0} [built]
  [7] ./node_modules/@babel/runtime/helpers/asyncToGenerator.js 809 bytes {0} [built]
  [9] ./node_modules/@sinonjs/samsam/lib/samsam.js 653 bytes {0} [built]
 [11] ./node_modules/sinon/lib/sinon/util/core/extend.js 2.94 KiB {0} [built]
 [12] ./node_modules/chai/lib/chai.js 1.22 KiB {0} [built]
 [19] ./node_modules/sinon/lib/sinon/util/core/format.js 577 bytes {0} [built]
 [35] ./node_modules/sinon/lib/sinon.js 1.26 KiB {0} [built]
 [38] ./node_modules/sinon/lib/sinon/assert.js 6.56 KiB {0} [built]
 [42] ./node_modules/sinon/lib/sinon/stub.js 6.26 KiB {0} [built]
 [94] multi ./cypress/integration/browser.spec.ts 28 bytes {0} [built]
[220] ./cypress/integration/browser.spec.ts + 9 modules 134 KiB {0} [built]
      | ./cypress/integration/browser.spec.ts 310 bytes [built]
      | ./src/analytics/test/browser/result_collector.spec.ts 3.49 KiB [built]
      | ./src/input/test/browser/exif_helper.spec.js 13.5 KiB [built]
      | ./src/input/test/browser/camera_access.spec.ts 12.2 KiB [built]
      | ./src/common/test/browser/mediaDevices.spec.ts 1.51 KiB [built]
      | ./src/common/image_debug.ts 10.6 KiB [built]
      | ./src/analytics/result_collector.ts 14.9 KiB [built]
      | ./src/input/exif_helper.js 41 KiB [built]
      | ./src/common/mediaDevices.ts 3.26 KiB [built]
      | ./src/input/camera_access.ts 33.5 KiB [built]
    + 206 hidden modules

WARNING in ./node_modules/mocha/lib/mocha.js 182:20-37
Critical dependency: the request of a dependency is an expression
 @ ./node_modules/mocha/browser-entry.js
 @ ./src/analytics/test/browser/result_collector.spec.ts
 @ ./cypress/integration/browser.spec.ts
 @ multi ./cypress/integration/browser.spec.ts

WARNING in ./node_modules/mocha/lib/mocha.js 187:24-70
Critical dependency: the request of a dependency is an expression
 @ ./node_modules/mocha/browser-entry.js
 @ ./src/analytics/test/browser/result_collector.spec.ts
 @ ./cypress/integration/browser.spec.ts
 @ multi ./cypress/integration/browser.spec.ts

WARNING in ./node_modules/mocha/lib/mocha.js 225:17-30
Critical dependency: the request of a dependency is an expression
 @ ./node_modules/mocha/browser-entry.js
 @ ./src/analytics/test/browser/result_collector.spec.ts
 @ ./cypress/integration/browser.spec.ts
 @ multi ./cypress/integration/browser.spec.ts

WARNING in ./node_modules/mocha/lib/mocha.js 263:26-39
Critical dependency: the request of a dependency is an expression
 @ ./node_modules/mocha/browser-entry.js
 @ ./src/analytics/test/browser/result_collector.spec.ts
 @ ./cypress/integration/browser.spec.ts
 @ multi ./cypress/integration/browser.spec.ts

WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).This can impact web performance.
Assets: 
  browser.spec.ts.js (9.49 MiB)

WARNING in entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.
Entrypoints:
  main (9.49 MiB)
      browser.spec.ts.js


WARNING in webpack performance recommendations: 
You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application.
For more info visit https://webpack.js.org/guides/code-splitting/
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬────────────┬──────────────┬───────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐        
  cypress:server:util:process_profiler │ (index) │   group    │ processCount │               pids                │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │        
  cypress:server:util:process_profiler ├─────────┼────────────┼──────────────┼───────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤        
  cypress:server:util:process_profiler │    0    │  'plugin'  │      1       │              '13892'              │    15.2    │      8.07      │ 1094.97  │    372.7     │   1094.97   │        
  cypress:server:util:process_profiler │    1    │  'other'   │      5       │ '15044, 11684, 13648, 4288, 6868' │     0      │      0.18      │  182.81  │    153.39    │   182.81    │        
  cypress:server:util:process_profiler │    2    │ 'cypress'  │      1       │              '15144'              │    0.18    │      0.97      │  176.23  │    174.14    │    226.5    │        
  cypress:server:util:process_profiler │    3    │ 'Electron' │      1       │              '15116'              │     0      │      0.1       │  95.66   │    102.37    │   108.99    │        
  cypress:server:util:process_profiler │    4    │  'TOTAL'   │      8       │                '-'                │   15.38    │      7.95      │ 1549.66  │    706.36    │   1549.66   │        
  cypress:server:util:process_profiler └─────────┴────────────┴──────────────┴───────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +11s   
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬────────────┬──────────────┬───────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐        
  cypress:server:util:process_profiler │ (index) │   group    │ processCount │               pids                │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │        
  cypress:server:util:process_profiler ├─────────┼────────────┼──────────────┼───────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤        
  cypress:server:util:process_profiler │    0    │  'plugin'  │      1       │              '13892'              │    0.7     │      6.84      │  353.99  │    369.59    │   1094.97   │        
  cypress:server:util:process_profiler │    1    │  'other'   │      5       │ '15044, 11684, 3656, 17580, 7804' │    0.11    │      0.17      │  182.8   │    157.59    │   182.81    │        
  cypress:server:util:process_profiler │    2    │ 'cypress'  │      1       │              '15144'              │    1.05    │      0.98      │  179.46  │    174.9     │    226.5    │        
  cypress:server:util:process_profiler │    3    │ 'Electron' │      1       │              '15116'              │   11.48    │      2.38      │  139.1   │    109.72    │    139.1    │        
  cypress:server:util:process_profiler │    4    │  'TOTAL'   │      8       │                '-'                │   13.34    │      8.72      │  855.35  │    727.65    │   1549.66   │        
  cypress:server:util:process_profiler └─────────┴────────────┴──────────────┴───────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +11s   
  cypress:server:util:socket_whitelist whitelisted socket closed, removing { localPort: 55754 } 
+55s
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬────────────┬──────────────┬───────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐        
  cypress:server:util:process_profiler │ (index) │   group    │ processCount │               pids                │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │        
  cypress:server:util:process_profiler ├─────────┼────────────┼──────────────┼───────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤        
  cypress:server:util:process_profiler │    0    │  'plugin'  │      1       │              '13892'              │     0      │      5.86      │  353.99  │    367.36    │   1094.97   │        
  cypress:server:util:process_profiler │    1    │  'other'   │      5       │ '15044, 11684, 14524, 3940, 4464' │     0      │      0.15      │  182.52  │    160.71    │   182.81    │        
  cypress:server:util:process_profiler │    2    │ 'cypress'  │      1       │              '15144'              │    0.07    │      0.87      │  179.26  │    175.44    │    226.5    │        
  cypress:server:util:process_profiler │    3    │ 'Electron' │      1       │              '15116'              │   12.58    │      4.08      │  139.09  │    114.61    │    139.1    │        
  cypress:server:util:process_profiler │    4    │  'TOTAL'   │      8       │                '-'                │   12.66    │      9.21      │  854.86  │    743.55    │   1549.66   │        
  cypress:server:util:process_profiler └─────────┴────────────┴──────────────┴───────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +11s   
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬────────────┬──────────────┬───────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐        
  cypress:server:util:process_profiler │ (index) │   group    │ processCount │               pids                │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │        
  cypress:server:util:process_profiler ├─────────┼────────────┼──────────────┼───────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤        
  cypress:server:util:process_profiler │    0    │  'other'   │      5       │ '15044, 11684, 16392, 3816, 7216' │     0      │      0.13      │  182.48  │    163.13    │   182.81    │        
  cypress:server:util:process_profiler │    1    │ 'cypress'  │      1       │              '15144'              │    0.13    │      0.79      │  179.29  │    175.87    │    226.5    │        
  cypress:server:util:process_profiler │    2    │ 'Electron' │      1       │              '15116'              │   12.55    │      5.29      │  139.09  │    118.11    │    139.1    │        
  cypress:server:util:process_profiler │    3    │  'plugin'  │      1       │              '13892'              │    0.34    │      5.17      │  120.27  │    336.47    │   1094.97   │        
  cypress:server:util:process_profiler │    4    │  'TOTAL'   │      8       │                '-'                │   13.02    │      9.63      │  621.13  │    729.95    │   1549.66   │        
  cypress:server:util:process_profiler └─────────┴────────────┴──────────────┴───────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +11s   
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬────────────┬──────────────┬────────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐       
  cypress:server:util:process_profiler │ (index) │   group    │ processCount │                pids                │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │       
  cypress:server:util:process_profiler ├─────────┼────────────┼──────────────┼────────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤       
  cypress:server:util:process_profiler │    0    │  'other'   │      5       │ '15044, 11684, 8432, 13936, 14868' │     0      │      0.12      │  182.5   │    165.06    │   182.81    │       
  cypress:server:util:process_profiler │    1    │ 'cypress'  │      1       │              '15144'               │    0.45    │      0.75      │  172.77  │    175.56    │    226.5    │       
  cypress:server:util:process_profiler │    2    │ 'Electron' │      1       │              '15116'               │    12.6    │      6.2       │  138.96  │    120.72    │    139.1    │       
  cypress:server:util:process_profiler │    3    │  'plugin'  │      1       │              '13892'               │    0.17    │      4.62      │  117.39  │    312.13    │   1094.97   │       
  cypress:server:util:process_profiler │    4    │  'TOTAL'   │      8       │                '-'                 │   13.22    │      9.99      │  611.63  │    718.11    │   1549.66   │       
  cypress:server:util:process_profiler └─────────┴────────────┴──────────────┴────────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +11s  
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬────────────┬──────────────┬────────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐       
  cypress:server:util:process_profiler │ (index) │   group    │ processCount │                pids                │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │       
  cypress:server:util:process_profiler ├─────────┼────────────┼──────────────┼────────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤       
  cypress:server:util:process_profiler │    0    │  'other'   │      5       │ '15044, 11684, 15644, 2904, 10548' │     0      │      0.11      │  182.48  │    166.65    │   182.81    │       
  cypress:server:util:process_profiler │    1    │ 'cypress'  │      1       │              '15144'               │    0.17    │      0.7       │  175.38  │    175.54    │    226.5    │       
  cypress:server:util:process_profiler │    2    │ 'Electron' │      1       │              '15116'               │   12.55    │      6.91      │  138.96  │    122.74    │    139.1    │       
  cypress:server:util:process_profiler │    3    │  'plugin'  │      1       │              '13892'               │     0      │      4.16      │  117.39  │    292.66    │   1094.97   │       
  cypress:server:util:process_profiler │    4    │  'TOTAL'   │      8       │                '-'                 │   12.72    │     10.24      │  614.22  │    708.67    │   1549.66   │       
  cypress:server:util:process_profiler └─────────┴────────────┴──────────────┴────────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +11s  
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬────────────┬──────────────┬───────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐        
  cypress:server:util:process_profiler │ (index) │   group    │ processCount │               pids                │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │        
  cypress:server:util:process_profiler ├─────────┼────────────┼──────────────┼───────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤        
  cypress:server:util:process_profiler │    0    │  'other'   │      5       │ '15044, 11684, 2012, 18228, 4216' │     0      │      0.1       │  182.51  │    167.97    │   182.81    │        
  cypress:server:util:process_profiler │    1    │ 'cypress'  │      1       │              '15144'              │    0.11    │      0.65      │  176.18  │    175.6     │    226.5    │        
  cypress:server:util:process_profiler │    2    │ 'Electron' │      1       │              '15116'              │   12.55    │      7.47      │  138.96  │    124.37    │    139.1    │        
  cypress:server:util:process_profiler │    3    │  'plugin'  │      1       │              '13892'              │     0      │      3.78      │  117.39  │    276.72    │   1094.97   │        
  cypress:server:util:process_profiler │    4    │  'TOTAL'   │      8       │                '-'                │   12.66    │     10.44      │  615.05  │    700.87    │   1549.66   │        
  cypress:server:util:process_profiler └─────────┴────────────┴──────────────┴───────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +11s   
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬────────────┬──────────────┬───────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐        
  cypress:server:util:process_profiler │ (index) │   group    │ processCount │               pids                │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │        
  cypress:server:util:process_profiler ├─────────┼────────────┼──────────────┼───────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤        
  cypress:server:util:process_profiler │    0    │  'other'   │      5       │ '15044, 11684, 5284, 13216, 9936' │     0      │      0.09      │  182.53  │    169.09    │   182.81    │        
  cypress:server:util:process_profiler │    1    │ 'cypress'  │      1       │              '15144'              │    0.13    │      0.61      │  176.77  │    175.69    │    226.5    │        
  cypress:server:util:process_profiler │    2    │ 'Electron' │      1       │              '15116'              │   12.56    │      7.93      │  138.96  │    125.69    │    139.1    │        
  cypress:server:util:process_profiler │    3    │  'plugin'  │      1       │              '13892'              │     0      │      3.46      │  117.39  │    263.44    │   1094.97   │        
  cypress:server:util:process_profiler │    4    │  'TOTAL'   │      8       │                '-'                │   12.69    │     10.62      │  615.66  │    694.31    │   1549.66   │        
  cypress:server:util:process_profiler └─────────┴────────────┴──────────────┴───────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +11s   
  cypress:server:util:process_profiler current & mean memory and CPU usage by process group:
  cypress:server:util:process_profiler ┌─────────┬────────────┬──────────────┬──────────────────────────────────┬────────────┬────────────────┬──────────┬──────────────┬─────────────┐
  cypress:server:util:process_profiler │ (index) │   group    │ processCount │               pids               │ cpuPercent │ meanCpuPercent │ memRssMb │ meanMemRssMb │ maxMemRssMb │
  cypress:server:util:process_profiler ├─────────┼────────────┼──────────────┼──────────────────────────────────┼────────────┼────────────────┼──────────┼──────────────┼─────────────┤
  cypress:server:util:process_profiler │    0    │  'other'   │      5       │ '15044, 11684, 3604, 7396, 4976' │     0      │      0.09      │  182.46  │    170.04    │   182.81    │
  cypress:server:util:process_profiler │    1    │ 'cypress'  │      1       │             '15144'              │    0.15    │      0.58      │  178.68  │    175.9     │    226.5    │
  cypress:server:util:process_profiler │    2    │ 'Electron' │      1       │             '15116'              │    12.7    │      8.33      │  138.96  │    126.8     │    139.1    │
  cypress:server:util:process_profiler │    3    │  'plugin'  │      1       │             '13892'              │     0      │      3.2       │  117.39  │    252.21    │   1094.97   │
  cypress:server:util:process_profiler │    4    │  'TOTAL'   │      8       │               '-'                │   12.85    │     10.78      │  617.5   │    688.83    │   1549.66   │
  cypress:server:util:process_profiler └─────────┴────────────┴──────────────┴──────────────────────────────────┴────────────┴────────────────┴──────────┴──────────────┴─────────────┘ +11s    

It hangs at this point, and just keeps repeating the process_profiler messages approximately every 20-30 seconds or so.

@ericblade
Copy link
Author

These messages

WARNING in ./node_modules/mocha/lib/mocha.js 182:20-37
Critical dependency: the request of a dependency is an expression

give me some pause. They don't occur during my regular build process, only apparently when Cypress is building. I feel like there's some sort of interaction happening here between the version of mocha in use in my project (for running tests in node) and the version of mocha in use inside cypress. I've also witnessed a problem with this specific project, with attempting to install mocha >= 6.0 causes cypress to fail, as well, and that was with the older version of cypress.

But, I have no problem with the older version of cypress and my current repository, only 4.6.0 is showing this problem.

I don't really have any idea what that error means, to be able to try to diagnose it.

@ericblade
Copy link
Author

Hmm. Seems that guess may have been right -- removing the mocha directory from my local node_modules causes all the tests to run in cypress:run, although they now all fail because there is no version of mocha available to import.

This is a curious issue, and I'm maybe wondering if there's some basic architecture issues at play with attempting to have both node tests using node, and browser tests using cypress.

Keeping in mind, I don't really understand exactly how cypress works -- is cypress bundling it's own mocha and chai and other modules into the code that it runs? So then attempting to also bundle my local version of it, ends up with conflicting modules with the same name? That makes me curious what the difference is between 4.5 and 4.6 that makes the problem significantly worse. Before 4.6, I could do this, but I couldn't upgrade my mocha >= 6.0. With 4.6, I can't even get cypress run to work when I have the webpack-processor enabled.

@ericblade
Copy link
Author

So, to summarize my working assumption, which may be wrong, but I think the data supports it -- when using the webpack-processor, cypress is jamming two different versions of the same mocha/chai modules into my code, a version supplied by cypress, and a version supplied by my repo. For some reason, this either didn't happen in 4.5.0, or it happened in a way that it's effects didn't prevent cypress from functioning.

Does that make sense? Is there some way we could seek to support a use-case such as this? Perhaps a "do not bundle cypress mocha" option somewhere? I'd prefer to explicitly import my requirements anyway.

@LolliDepp
Copy link

LolliDepp commented May 21, 2020

I'm having a similar issue, but with JQuery types!
It was working corretly on 4.5.0

CORRECTION: the app builds correctly, it's cypress that reports some errors but ultimately works aniway

Small section of the logs:

ERROR in C:/Repo/node_modules/@types/jquery/misc.d.ts(5,1):
5:1 Definitions of the following identifiers conflict with those in another file: TypeOrArray, Node, htmlString, Selector, SuccessTextStatus, ErrorTextStatus, TextStatus, SuccessCallback, ErrorCallback, CompleteCallback, StatusCodeCallbacks, CSSHook, CallbackBase, Callback, Duration, Tweener, PropHook, EasingMethod, AnimationHook, Queue, QueueFunction, SpeedSettings, EventHandlerBase, EventHandler, TypeEventHandler, _TypeEventHandlers, SpecialEventHook, CoordinatesPartial, ValHook, _Falsy, jQuery, $, _Event, _UIEvent, _MouseEvent, _DragEvent, _KeyboardEvent, _TouchEvent, _FocusEvent
    3 | // tslint:disable:no-irregular-whitespace
    4 | 
  > 5 | declare namespace JQuery {
      | ^
    6 |     type TypeOrArray<T> = T | T[];
    7 |     type Node = Element | Text | Comment | DocumentFragment;
    8 | 
ERROR in C:/Repo/node_modules/cypress/types/jquery/JQuery.d.ts(12941,5):
12941:5 Duplicate number index signature.
    12939 |     wrapInner(wrappingElement_function: JQuery.Selector | JQuery.htmlString | Element | JQuery | ((this: TElement, index: number) => string | JQuery | Element)): this;
    12940 | 
  > 12941 |     [n: number]: TElement;
          |     ^
    12942 | }
    12943 | 
ERROR in C:/Repo/node_modules/cypress/types/jquery/legacy.d.ts(201,5):
201:5 Duplicate string index signature.
    199 |  */
    200 | interface JQueryEasingFunctions {
  > 201 |     [name: string]: JQueryEasingFunction;
        |     ^
    202 |     linear: JQueryEasingFunction;
    203 |     swing: JQueryEasingFunction;
    204 | }
ERROR in C:/Repo/node_modules/cypress/types/jquery/misc.d.ts(5,1):
5:1 Definitions of the following identifiers conflict with those in another file: TypeOrArray, Node, htmlString, Selector, SuccessTextStatus, ErrorTextStatus, TextStatus, SuccessCallback, ErrorCallback, CompleteCallback, StatusCodeCallbacks, CSSHook, CallbackBase, Callback, Duration, Tweener, PropHook, EasingMethod, AnimationHook, Queue, QueueFunction, SpeedSettings, EventHandlerBase, EventHandler, TypeEventHandler, _TypeEventHandlers, SpecialEventHook, CoordinatesPartial, ValHook, _Falsy, jQuery, $, _Event, _UIEvent, _MouseEvent, _DragEvent, _KeyboardEvent, _TouchEvent, _FocusEvent
    3 | // tslint:disable:no-irregular-whitespace
    4 | 
  > 5 | declare namespace JQuery {
      | ^
    6 |     type TypeOrArray<T> = T | T[];
    7 |     type Node = Element | Text | Comment | DocumentFragment;
    8 | 

@ericblade
Copy link
Author

ericblade commented May 21, 2020

That does look to be similar in nature of the issue, it's just not producing fatal conflicts like mine appears to be.

Since I'm not an expert in cypress (just started using it, really, don't know much at all about it's internals), I'm hoping someone who is can confirm or deny my suspicions above.. if confirm, i wonder if it would be a good idea to (optionally?) not jam mocha, chai, jquery, any other libs that are being added in (again, if that's what's happening), in favor of relying on the user to have those installed as peer dependencies.

@ericblade
Copy link
Author

ericblade commented May 27, 2020

@tgriesser @jennifer-shehane

4.7.0 fixes the aspect of the test suite freezing. I am able to build my project with the workaround given earlier .. i guess if i want to continue on this path, i'll probably have to follow The Cypress Way :) and move my tests to the cypress directory instead of having them side-by-side with the code. (or figure out a way to get typescript to ignore my test files except when testing..)

I think this mostly covers it though. not sure if i should close this, or if there's any further actionable items here to look into?

@jennifer-shehane jennifer-shehane changed the title installing 4.6.0 (upgrade from 4.5.0) into my project causes the project to be unable to build anymore, duplicate identifiers in @types/mocha chai etc tsc type definition conflicts, duplicate identifiers in @types/mocha chai etc Jun 4, 2020
@jrnail23
Copy link

jrnail23 commented Jun 8, 2020

@jennifer-shehane I see you added the "existing workaround" label to this issue... can you please share what that workaround is?
When I try to use tsc to typecheck my code using any Cypress version from 4.6. to 4.8, I get the following:

../../node_modules/@types/chai/index.d.ts(19,1): error TS6200: Definitions of the following identifiers conflict with those in another file: Message, ObjectProperty, ChaiPlugin, AssertionArgs, Operator, OperatorComparable, AssertionError, chai
../../node_modules/cypress/types/chai/index.d.ts(19,1): error TS6200: Definitions of the following identifiers conflict with those in another file: Message, ObjectProperty, ChaiPlugin, AssertionArgs, Operator, OperatorComparable, AssertionError, chai

BTW, while I'm not sure it's relevant, I'm also using chai-subset and dirty-chai, each of which augments chai interfaces.

@ericblade
Copy link
Author

@jrnail23 what worked for me was putting a separate tsconfig in the cypress directory, which lists cypress in it's types config, and removing cypress from the tsconfig in the root directory.

I still have suspicion that the entire methodology going on here might have some flaws, that that doesn't address though, but no one has addressed my suspicions above so far.

@jrnail23
Copy link

jrnail23 commented Jun 9, 2020

Thanks for the tip, @ericblade, but no dice for me. My problem isn't actually related to running my tests -- that works just fine, believe it or not.
It's just that I run tsc on all my stuff to typecheck (on a pre-commit hook, for example), and it blows up then.

@ericblade
Copy link
Author

right, that's where my problem was as well. My project uses tsc as a type-checker before it runs building with webpack and friends. That step failed, when I removed cypress from the project root types, and put it only in the cypress directory, then it works. perhaps you might need to add the cypress directory to your exclusions in tsconfig?

@ericblade
Copy link
Author

See this message for specifics #7435 (comment)

@jrnail23
Copy link

OK, so I realize I neglected to mention that my project is actually a package of Cypress plugins that uses cypress to test them. So I can't remove cypress from my base tsconfig, since it needs that to be able to compile my plugins code.
I have a src folder containing my plugins source code, and I have a test/cypress folder with the tests, etc. (the test dir also has some html-only dummy app code in test/app, FWIW).

I have a tsconfig.build.json file that gets used for my actual builds:

{
	"extends": "../../tsconfig.base",
	"compilerOptions": {
		"lib": ["es2018", "dom"],
		"outDir": "./dist",
		"rootDir": "./src",
		"types": ["cypress", "node"]
	},
	"include": ["src"],
	"references": [{ "path": "../testing-server-core/tsconfig.build.json" }]
}

I've got a separate tsconfig.json file that gets used for my typechecking, and it's got the following:

{
	"extends": "./tsconfig.build",
	"compilerOptions": {
		"composite": false,
		"rootDir": ".",
		"types": ["cypress", "node", "chai-subset", "dirty-chai"]
	},
	"include": ["src", "test"]
}

Again, this worked fine in versions 4.5 and below -- it stopped working in v4.6. #7435 (comment)

@jrnail23
Copy link

UPDATE: I was able to get my typechecking to work by getting rid of chai-subset and dirty-chai. I can live without them, but it would be nice to be able to use chai plugins as advertised.

I assume that since they both augment chai's interfaces, they were probably including their own chai types dependencies, conflicting with the ones bundled by Cypress.

So I suppose there's your test case going forward -- to be able to support chai plugins in typescript. 😅

@jennifer-shehane jennifer-shehane added the type: unexpected behavior User expected result, but got another label Jul 9, 2020
@sylvainar
Copy link

Still having this issue, did anyone found a solution that is not a hack? Thanks.

@glomotion
Copy link

glomotion commented Apr 15, 2021

So we too are finding this issue, with cypress 7.x.
I wonder, has there been any movement here?
For us, the most commonly suggested resolution (use 2 different tsconfig.json's one inside the root and one inside the cypress/ dir) doesnt work for us, because the cypress tests are component tests - which reside allover the codebase, amoungst the jest tests.

It should also be noted, just merely installing the cypress 7.x dep, gives us these type errors. Even when there are no cypress based tests.

@ericblade
Copy link
Author

6.x and 7.x don't work for me for a myriad of reasons that i haven't bothered to try to pick apart, so i'm unfortunately no further help :|

@hallettj
Copy link

My workaround for chai-subset is to uninstall @types/chai-subset (which depends on @types/chai), and to instead place a modified version of the chai-subset type definitions in my project. I put this file in cypress/types/chai-subset.d.ts:

/**
 * This is copied from `@types/chai-subset`. The types package imports
 * `@types/chai` which conflicts with Cypress' definitions for chai which is why
 * this code is copied instead of installing that package.
 */

declare module "chai-subset" {
  global {
    namespace Chai {
      interface Assertion {
        containSubset(expected: any): Assertion
      }
      interface Assert {
        containSubset(val: any, exp: any, msg?: string): void
      }
    }
  }

  const chaiSubset: Chai.ChaiPlugin
  export = chaiSubset
}

I'm not sure it's really necessary for @types/chai-subset to depend on @types/chai. If it didn't have that dependency, and did not include this line then I think that would solve the problem for me.

/// <reference types="chai" />

@flotwig
Copy link
Contributor

flotwig commented May 3, 2022

This should no longer be happening in the latest Cypress. If this is still an issue in the latest Cypress version, please open a new report with a reproducible example.

@flotwig flotwig closed this as completed May 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
existing workaround stage: needs information Not enough info to reproduce the issue topic: typescript type: unexpected behavior User expected result, but got another v4.6.0 🐛 Issue present since 4.6.0
Projects
None yet
Development

No branches or pull requests

9 participants