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

Percent character in spec file name causes cypress to hang #18871

Closed
biltongza opened this issue Nov 10, 2021 · 3 comments · Fixed by #18877
Closed

Percent character in spec file name causes cypress to hang #18871

biltongza opened this issue Nov 10, 2021 · 3 comments · Fixed by #18877
Assignees

Comments

@biltongza
Copy link

biltongza commented Nov 10, 2021

Current behavior

Running a spec file with the percent character % causes Cypress to hang.

Desired behavior

Cypress should not hang and should run the spec file normally.

Test code to reproduce

npx cypress run --env configFile=uat --spec .\cypress\integration\sell-tests\Sell-SAUT-100%-Success.e2e.spec.js

Result:

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

  (Run Starting)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Cypress:    8.7.0                                                                              │
  │ Browser:    Electron 93 (headless)                                                             │
  │ Specs:      1 found (sell-tests/Sell-SAUT-100%-Success.e2e.spec.js)                            │
  │ Searched:   cypress\integration\sell-tests\Sell-SAUT-100%-Success.e2e.spec.js                  │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


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

  Running:  sell-tests/Sell-SAUT-100%-Success.e2e.spec.js                                   (1 of 1)
URIError: Failed to decode param 'integration/sell-tests/Sell-SAUT-100%-Success.e2e.spec.js'
    at decodeURIComponent (<anonymous>:null:null)
    at decode_param (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\layer.js:172:12)
    at Layer.match (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\layer.js:148:15)
    at matchLayer (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:574:18)
    at next (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:220:15)
    at Function.handle (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:174:3)
    at router (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:47:12)
    at Layer.handle [as handle_request] (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:275:10)
    at C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:635:15
    at next (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:260:14)
    at Function.handle (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:174:3)
    at router (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:47:12)
    at Layer.handle [as handle_request] (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:275:10)
    at Layer.handle [as handle_request] (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\layer.js:91:12)
    at trim_prefix (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:275:10)
    at compression (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\compression\index.js:220:5)
    at Layer.handle [as handle_request] (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:275:10)
    at cookieParser (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\cookie-parser\index.js:57:14)
    at Layer.handle [as handle_request] (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:275:10)
    at C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\lib\server-base.js:54:16
    at Layer.handle [as handle_request] (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:275:10)
    at C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\lib\server-base.js:165:20
    at Layer.handle [as handle_request] (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:275:10)
    at expressInit (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\middleware\init.js:40:5)
    at Layer.handle [as handle_request] (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:275:10)
    at query (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\middleware\query.js:45:5)
    at Layer.handle [as handle_request] (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:317:13)
    at C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:275:10)
    at Function.handle (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\router\index.js:174:3)
    at Function.handle (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\application.js:174:10)
    at Server.app (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\node_modules\express\lib\express.js:39:9)
    at Server.<anonymous> (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\socket\node_modules\engine.io\lib\server.js:422:24)
    at C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\lib\server-base.js:255:29
    at Array.map (<anonymous>:null:null)
    at ServerE2E._callRequestListeners (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\lib\server-base.js:254:26)
    at Server.<anonymous> (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\lib\server-base.js:271:18)
    at C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\lib\server-base.js:255:29
    at Array.map (<anonymous>:null:null)
    at ServerE2E._callRequestListeners (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\lib\server-base.js:254:26)
    at ServerE2E.callListeners (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\server\lib\server-base.js:431:21)
    at Server._onRequest (C:\Users\ldam\AppData\Local\Cypress\Cache\8.7.0\Cypress\resources\app\packages\https-proxy\lib\server.js:101:17)
    at Server.emit (events.js:376:20)
    at parserOnIncoming (_http_server.js:896:12)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:126:17)

Browserslist: caniuse-lite is outdated. Please run:
npx browserslist@latest --update-db

Why you should do it regularly:
https://github.com/browserslist/browserslist#browsers-data-updating

Cypress Version

8.7.0

Other

This seems to be a regression from at least 7.3.0, as we have only seen this issue since updating to 8.7.0.

@cypress-bot cypress-bot bot added stage: needs review The PR code is done & tested, needs review stage: work in progress and removed stage: needs review The PR code is done & tested, needs review labels Nov 10, 2021
@BlueWinds
Copy link
Contributor

Thank you for the bug report - I've been able to reproduce this locally exactly as described, and have opened a PR to fix the issue.

The cause is that Cypress doesn't properly url-encode spec names before attempting to load them from the server.

@BlueWinds BlueWinds self-assigned this Nov 12, 2021
@cypress-bot cypress-bot bot added stage: needs review The PR code is done & tested, needs review and removed stage: work in progress labels Nov 16, 2021
@cypress-bot
Copy link
Contributor

cypress-bot bot commented Nov 17, 2021

The code for this is done in cypress-io/cypress#18877, but has yet to be released.
We'll update this issue and reference the changelog when it's released.

@cypress-bot cypress-bot bot removed the stage: needs review The PR code is done & tested, needs review label Nov 17, 2021
@cypress-bot
Copy link
Contributor

cypress-bot bot commented Nov 23, 2021

Released in 9.1.0.

This comment thread has been locked. If you are still experiencing this issue after upgrading to
Cypress v9.1.0, please open a new issue.

@cypress-bot cypress-bot bot locked as resolved and limited conversation to collaborators Nov 23, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants