Summary
The project currently pins jsdom at ^27.1.0 (resolved to 27.4.0). jsdom v28 is available but includes breaking changes that need evaluation.
Risk assessment
| jsdom v28 change |
Affected area |
Risk |
CustomEvent constructor behavior |
shell.spec.ts (dispatches new Event('resize')) |
Low |
Stricter localStorage mock |
github.service.spec.ts (uses vi.stubGlobal) |
Low |
document.createElement stricter validation |
editor-page-computed.spec.ts (spies on origCreateElement) |
Medium |
FormData / File constructor changes |
Not used in unit tests |
None |
Recommended steps
- Pin jsdom more tightly to
~27.4.0 to prevent accidental major upgrade via transitive deps
- Create a test branch with
jsdom@^28.1.0 and run the full suite
- Fix any failures before merging
- Consider adding
overrides/resolutions block to prevent nested packages from pulling v28 prematurely