cypress-angular-unit-test icon indicating copy to clipboard operation
cypress-angular-unit-test copied to clipboard

SocketCt#startListening must first be called before accessing 'this.io'

Open dwilches opened this issue 3 years ago • 3 comments

Current behavior

I followed the README instructions to setup Cypress component testing with Angular 12 (followed the Webpack 5 instructions).

When I execute npx cypress open-ct I get the error: SocketCt#startListening must first be called before accessing 'this.io'

$ npx cypress open-ct
[71661:1105/113101.194050:ERROR:node_bindings.cc(278)] Most NODE_OPTIONs are not supported in packaged apps. See documentation for more details.
ℹ 「wds」: Project is running at http://localhost:57484/webpack-dev-server/
ℹ 「wds」: webpack output is served from /__cypress/src
ℹ 「wds」: Content not from webpack is served from /Users/myuser/Repos/myproject
Error: SocketCt#startListening must first be called before accessing 'this.io'
    at SocketCt.ensureProp (/Users/myuser/Library/Caches/Cypress/8.7.0/Cypress.app/Contents/Resources/app/packages/server/lib/util/class-helpers.js:14:15)
    at SocketCt.get io [as io] (/Users/myuser/Library/Caches/Cypress/8.7.0/Cypress.app/Contents/Resources/app/packages/server/lib/socket-base.js:53:21)
    at SocketCt.toRunner (/Users/myuser/Library/Caches/Cypress/8.7.0/Cypress.app/Contents/Resources/app/packages/server/lib/socket-base.js:59:21)
    at EventEmitter.<anonymous> (/Users/myuser/Library/Caches/Cypress/8.7.0/Cypress.app/Contents/Resources/app/packages/server/lib/socket-ct.js:13:18)
    at EventEmitter.emit (events.js:376:20)
    at EventEmitter.<anonymous> (/Users/myuser/Library/Caches/Cypress/8.7.0/Cypress.app/Contents/Resources/app/packages/server/lib/plugins/dev-server.js:16:17)
    at EventEmitter.emit (events.js:376:20)
    at ChildProcess.<anonymous> (/Users/myuser/Library/Caches/Cypress/8.7.0/Cypress.app/Contents/Resources/app/packages/server/lib/plugins/util.js:19:22)
    at ChildProcess.emit (events.js:376:20)
    at emit (internal/child_process.js:910:12)
    at processTicksAndRejections (internal/process/task_queues.js:83:21)

Error: SocketCt#startListening must first be called before accessing 'this.io'
    at SocketCt.ensureProp (/Users/myuser/Library/Caches/Cypress/8.7.0/Cypress.app/Contents/Resources/app/packages/server/lib/util/class-helpers.js:14:15)
    at SocketCt.get io [as io] (/Users/myuser/Library/Caches/Cypress/8.7.0/Cypress.app/Contents/Resources/app/packages/server/lib/socket-base.js:53:21)
    at SocketCt.toRunner (/Users/myuser/Library/Caches/Cypress/8.7.0/Cypress.app/Contents/Resources/app/packages/server/lib/socket-base.js:59:21)
    at EventEmitter.<anonymous> (/Users/myuser/Library/Caches/Cypress/8.7.0/Cypress.app/Contents/Resources/app/packages/server/lib/socket-ct.js:13:18)
    at EventEmitter.emit (events.js:376:20)
    at EventEmitter.<anonymous> (/Users/myuser/Library/Caches/Cypress/8.7.0/Cypress.app/Contents/Resources/app/packages/server/lib/plugins/dev-server.js:16:17)
    at EventEmitter.emit (events.js:376:20)
    at ChildProcess.<anonymous> (/Users/myuser/Library/Caches/Cypress/8.7.0/Cypress.app/Contents/Resources/app/packages/server/lib/plugins/util.js:19:22)
    at ChildProcess.emit (events.js:376:20)
    at emit (internal/child_process.js:910:12)
    at processTicksAndRejections (internal/process/task_queues.js:83:21)

Desired behavior

I would want to see the Cypress window to be able to run the new cy-spec tests

Test code to reproduce

If the code above is not enough to troubleshoot, let me know to put together a working sample. My company's project is large and confidential, so this would take time.

Versions

From package.json:

    "@cypress/webpack-dev-server": "^1.7.0",
    "cypress": "^8.7.0",
    "cypress-angular-unit-test": "^3.9.0",
    "html-webpack-plugin": "^5.5.0",
    "typescript": "~4.3.5",

Angular:

$ ng version
Your global Angular CLI version (13.0.1) is greater than your local version (12.2.6). The local Angular CLI version is used.

To disable this warning use "ng config -g cli.warnings.versionMismatch false".

     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/
    

Angular CLI: 12.2.6
Node: 14.18.0
Package Manager: npm 6.14.15
OS: darwin x64

Angular: 12.2.6
... animations, cdk, cli, common, compiler, compiler-cli, core
... forms, material, material-moment-adapter, platform-browser
... platform-browser-dynamic, router, upgrade

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1202.6
@angular-devkit/build-angular   12.2.6
@angular-devkit/core            12.2.6
@angular-devkit/schematics      12.2.6
@schematics/angular             12.2.6
rxjs                            6.5.5
typescript                      4.3.5

Other:

  • Browser: Chrome Version 95.0.4638.69 (Official Build) (arm64)
  • Operating System: MacOs Big sur 11.6
  • CI Provider: N/A because it's running locally

dwilches avatar Nov 05 '21 16:11 dwilches

I meet the same issue

thudxz avatar Nov 11 '21 14:11 thudxz

Also experiencing this issue on the latest v9.0.0 of Cypress

azaeng04 avatar Nov 12 '21 16:11 azaeng04

I have the same issue. Any update on this? Thanks,

elvince avatar Dec 13 '21 16:12 elvince