Skip to content

fix(web): polyfill Blob.stream() pour jsdom (test coloration Markdown rouge sur main) - #299

Merged
bobdivx merged 2 commits into
mainfrom
fix/web-markdown-highlight-test
Nov 2, 2026
Merged

bobdivx merged 2 commits into
mainfrom
fix/web-markdown-highlight-test

Conversation

@bobdivx

@bobdivx bobdivx commented Nov 2, 2026

Copy link
Copy Markdown
Owner

Cause : shiki 4.6.0 publié le 02/11 à 05:36 (heure de Paris). @shikijs/engine-oniguruma charge désormais son wasm gzip inliné via new Blob([…]).stream().pipeThrough(new DecompressionStream('gzip')). jsdom n'implémente pas Blob.stream() → TypeError: (intermediate value).stream is not a function, avalée par highlightCode → pas de data-highlighted → timeout du test.

Pourquoi la CI a pris 4.6.0 : package-lock.json pointe shiki 4.4.3 alors que package.json demande ^4.5.0 ; le lockfile est ignoré pour ce paquet et npm install résout la dernière version.

Correctif : polyfill Blob.prototype.stream (basé sur arrayBuffer()) dans src/test/setup.ts, uniquement si absent. Les navigateurs supportent Blob.stream() : le code de prod ne change pas.

Reproduit en local (copie autonome de apps/web, npm install && npm run build && npm test) : 1 échec avant, 187/187 après.

Suivi conseillé (hors PR) : resynchroniser package-lock.json avec package.json.

…n wasm via Blob.stream)

shiki 4.6.0 (publié le 2026-11-02) charge le wasm oniguruma gzip inliné avec
new Blob([...]).stream().pipeThrough(new DecompressionStream('gzip')). jsdom n'implémente
pas Blob.stream() : l'erreur était avalée par highlightCode → pas de coloration → test
« code coloré en jetons » en timeout. Les navigateurs ont Blob.stream() : la prod n'est
pas touchée. Le lockfile (shiki 4.4.3) n'étant pas en phase avec package.json (^4.5.0),
npm install en CI a pris la nouvelle version.
@bobdivx
bobdivx merged commit c360604 into main Nov 2, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant