Add ES2024 and WebSocket polyfills for Node.js test environments - #6
Conversation
|
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the
Comment |
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
|
@copilot Oprav CI v PR #6 (branch copilot/add-websocket-polyfill-for-tests). Aktuální fail v jobu 62304012405 (ref bc43a97) je: TypeError: Promise.withResolvers is not a function v packages/nodejs/test/Task.test.ts (více řádků). Úkol: odstranit použití Promise.withResolvers() tak, aby testy běžely na Node/Bun v CI. Požadavky: změny drž jen v packages/nodejs/test/** (nezasahovat do produkčního kódu), zachovat typy v TS, a ujistit se, že Vitest testy projdou. |
There was a problem hiding this comment.
Pull request overview
This PR fixes a test failure in the @evolu/nodejs package where importing @evolu/common causes a runtime error because Node.js lacks a native WebSocket global. The @evolu/common package accesses globalThis.WebSocket.CONNECTING at module initialization time to build ready state mappings, which fails when WebSocket is undefined.
Changes:
- Added a test setup file that polyfills
globalThis.WebSocketusing the existingwsdependency - Configured Vitest to load the polyfill before test imports
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
packages/nodejs/vitest.config.ts |
Adds setupFiles configuration to load the WebSocket polyfill before tests run |
packages/nodejs/test/setup.ts |
Conditionally polyfills globalThis.WebSocket using the ws package when undefined |
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
Done. Created |
|
@copilot zjisti proč selhala poslední CI workflow a udělej fixy |
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
CI selhávalo kvůli chybějící Zjištěné problémy:
Všechny ES2024 funkce jsou nyní polyfillovány pro Node.js/Bun v CI. |
|
@copilot vysvětli mi chybu posledního CI a navrhni opravy. |
Poslední CI selhalo na TypeScript build chybě v Problém: Na řádku 13 jsem použil Oprava: Změnil jsem Commit bude v dalším push. |
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
|
@copilot to musí být nějaký systémová chyba. Tvoje fixy nefungují. |
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
Máte pravdu, omlouvám se. Objevily se další systémové problémy: Nové chyby:
Oprava (commit 617c7aa):
Nyní by mělo CI konečně projít - všechny polyfilly jsou načteny ve správném pořadí. |
Oprava CI - fix systémové chyby s AsyncDisposableStack a Set.difference
CI stále selhávalo kvůli dalším chybějícím polyfillům a špatnému pořadí inicializace.
Nové problémy nalezené v CI
TypeError: globalThis.AsyncDisposableStack is not a constructorAsyncDisposableStackdisposablestack/autopolyfillTypeError: newColumns.difference is not a functionSet.prototype.difference(ES2025)Špatné pořadí inicializace
Implementované změny
packages/common/test/_nodeSetup.ts:installPolyfills()NA ZAČÁTKUSet.prototype.difference(ES2025)packages/nodejs/test/setup.ts:Proč to teď bude fungovat
installPolyfills()načtedisposablestack/auto→ poskytne AsyncDisposableStackVšechny polyfilly jsou nyní načteny ve správném pořadí před jakýmkoli kódem který je potřebuje.
Original prompt
This pull request was created from Copilot chat.
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.