codeceptjs / codeceptjs/ui

Invalid string length

Offen
#737 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
JavaScript
Sterne
84
Forks
30
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Using a fresh installation of `codeceptjs` (v3.7.7) and `@codeceptjs/ui` (v1.3.8), when running a Hello World test (using both TypeScript and JavaScript, and both plain JS-driven scenario and Gherkin scenario), the UI keeps spinning endlessly, while giving me the following output in the terminal during the first `I.amOnPage()` statement (using `https://github.com` for this test purpose):
```
🌟 CodeceptUI started!
👉 Open http://localhost:3333 to see CodeceptUI in a browser

Unhandled rejection
Unhandled rejection
Application window opened, switch to it to run tests...
HTML Reporter: Starting HTML report generation...
CodeceptJS v3.7.7 #StandWithUkraine
Using test root "/path/to/tests"

Hello World --
As a Developer
I want to test Codecept.js with Gherkin
So I can make sure it will work for subsequent features
Unhandled rejection
Unhandled rejection
✖ Login page in 22208ms

-- FAILURES:

1) Hello World
Login page:

Invalid string length
RangeError:
at JSON.stringify ()
at Encoder.encodeAsString (node_modules/.pnpm/socket.io-parser@4.2.6/node_modules/socket.io-parser/build/cjs/index.js:93:25)


◯ File: file:///path/to/tests/features/hello.feature

◯ Scenario Steps:
✖ I.amOnPage("https://github.com") at ./definitions/steps.ts:12:7


◯ Metadata:
- browser: chromium
- browserVersion: 145.0.7632.6
- windowSize: 1280x720

FAIL | 0 passed, 1 failed // 23s
Run with --verbose flag to see complete NodeJS stacktrace
***************************************
nodeInfo: 24.10.0
osInfo: macOS 26.3
cpuInfo: (14) arm64 Apple M4 Pro
chromeInfo: 146.0.7680.153
edgeInfo: Not Found
firefoxInfo: Not Found
safariInfo: 26.3
playwrightBrowsers: "chromium: 145.0.7632.6, firefox: 146.0.1, webkit: 26.0"
If you need more detailed info, just run this: npx codeceptjs info
***************************************
HTML Report saved to: /path/to/tests/output/report.html
```

The actual code being executed is the following, in any case:
```javascript
Feature('Hello World');

Scenario('Hello', ({ I }) => {
I.amOnPage('https://github.com');
I.see('GitHub');
});
```
I started the debugger and saw a Step instance being `safeSerialize()`, leading to the issue. I tried changing the `maxDepth` default argument value. The following lead to those results:

| maxDepth | result |
|-|-|
| 0 | No visual output (expected) |
| [1,9] | Worked (expected) |
| [10,17] | No visual completion output (kind of unexpected, haven't investigated) |
| [18,[ | Above error occurs, no visual failure output |

This was attempted with Node.js 20 and 24.

My best guess is we have some deep copies of certain large objects being serialized, I haven't investigated more into the issue. Happy to help reproduce and debug with whoever wants to give this a shot!

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Start by tracing the Step instance through safeSerialize() and then into socket.io-parser's Encoder.encodeAsString, using the reported maxDepth ranges to reproduce the behavior. Check the I.amOnPage("https://github.com") scenario in CodeceptUI and confirm that serialization no longer raises Invalid string length while visual completion or failure output is still delivered.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, node.js, playwright
Bereich
devtools, testing-qa
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.