Skip to content

chore(deps-dev): bump jsdom from 29.0.0 to 30.0.0 - #95

Merged
Ndevu12 merged 1 commit into
mainfrom
dependabot/npm_and_yarn/jsdom-29.1.1
Jul 31, 2026
Merged

chore(deps-dev): bump jsdom from 29.0.0 to 30.0.0#95
Ndevu12 merged 1 commit into
mainfrom
dependabot/npm_and_yarn/jsdom-29.1.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jun 26, 2026

Copy link
Copy Markdown
Contributor

Bumps jsdom from 29.0.0 to 30.0.0.

Release notes

Sourced from jsdom's releases.

v30.0.0

Breaking changes:

  • Node.js minimum version raised to ^22.22.2 || ^24.15.0 || >=26.0.0.

Other changes:

  • Added CSS.escape() and CSS.supports() functions. (@​asamuzaK)
  • Added 'background-position-x' and 'background-position-y' CSS properties. (@​olagokemills)
  • Fixed getComputedStyle() to convert length values into pixels. (@​asamuzaK)
  • Fixed CSS function serialization, e.g., in the return value of getPropertyValue(). (@​asamuzaK)
  • Fixed the type of error thrown by document.evaluate() (@​dokson)

v29.1.1

  • Fixed 'border-radius' computed style serialization. (@​asamuzaK)
  • Fixed computed style computation when using 'background-origin' and 'background-clip' CSS properties. (@​asamuzaK)
  • Significantly optimized initial calls to getComputedStyle(), before the cache warms up. (@​asamuzaK)

v29.1.0

  • Added basic support for the ratio CSS type. (@​asamuzaK)
  • Fixed getComputedStyle() sometimes returning outdated results after CSS was modified. (@​asamuzaK)

v29.0.2

  • Significantly improved and sped up getComputedStyle(). Computed value rules are now applied across a broader set of properties, and include fixes related to inheritance, defaulting keywords, custom properties, and color-related values such as currentcolor and system colors. (@​asamuzaK)
  • Fixed CSS 'background' and 'border' shorthand parsing. (@​asamuzaK)

v29.0.1

  • Fixed CSS parsing of 'border', 'background', and their sub-shorthands containing keywords or var(). (@​asamuzaK)
  • Fixed getComputedStyle() to return a more functional CSSStyleDeclaration object, including indexed access support, which regressed in v29.0.0.
Commits
  • 20a01fc 30.0.0
  • 8c8e583 Precompute WPT expectation matches
  • f32245c Bump Node.js floor and dependencies
  • 03ef23b Add background-position longhands
  • ded056f Test CSS.escape() with numeric IDs
  • d312832 Convert CSS values to pixels for computed styles
  • 4e0ee41 Implement CSS.escape() and CSS.supports()
  • 05eb709 Fix benchmark:compare script on Windows
  • 97c1b90 Fix CSS function value serialization
  • 15642ba Add benchmark comparison script
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by GitHub Actions, a new releaser for jsdom since your current version.


@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Jun 26, 2026
@Ndevu12

Ndevu12 commented Jul 31, 2026

Copy link
Copy Markdown
Owner

@dependabot rebase

@dependabot dependabot Bot changed the title chore(deps-dev): bump jsdom from 29.0.0 to 29.1.1 chore(deps-dev): bump jsdom from 29.0.0 to 30.0.0 Jul 31, 2026
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/jsdom-29.1.1 branch from 3838171 to 7b0e870 Compare July 31, 2026 22:53
@Ndevu12 Ndevu12 self-assigned this Jul 31, 2026
@Ndevu12

Ndevu12 commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Holding this one — it is authentic but cannot be merged as-is.

The rebase changed what this PR does. It opened as 29.0.0 -> 29.1.1 (a patch); after @dependabot rebase it is now 29.0.0 -> 30.0.0, a major, and it modifies package.json (^29.0.0 -> ^30.0.0).

That major breaks CI:

Node requirement
jsdom@29.0.0 ^20.19.0 || ^22.13.0 || >=24.0.0
jsdom@30.0.0 ^22.22.2 || ^24.15.0 || >=26.0.0
.github/workflows/ci.yml node-version: 20

Node 20 is not in jsdom 30's supported set, and CI agrees — Unit Tests: FAILURE on this PR, while every other check passes.

Provenance is fine (authentic dependabot[bot], GPG-verified, 30.0.0 is a real npm release), so this is not a trust problem — it is a compatibility one. Merging it needs node-version raised to 22 or 24 across ci.yml first, which is a decision about which Node versions this library is tested against, not a dependency bump.

Leaving open pending that call.

Ndevu12 added a commit that referenced this pull request Jul 31, 2026
Moves all CI/CD jobs off an end-of-life Node runtime, and unblocks #95
as a consequence.

## Node 20 is EOL

Node 20 reached end-of-life on **2026-04-30**. Every job in this repo —
CI, Pages deploy, and release — has been running on a runtime that no
longer receives security patches. All six `node-version` pins across
`ci.yml`, `deploy.yml`, and `release.yml` move to **Node 24**, the
current LTS (supported to April 2028).

## This is also the real fix for #95

#95 (`jsdom` 29 → 30) fails CI, and the reported error is misleading:

```
ERROR: Coverage for lines (0%) does not meet global threshold (80%)
```

That is a **symptom, not the cause**. The actual failure is that every
vitest worker crashed before running a single test:

```
Error: [vitest-pool]: Failed to start forks worker for test files .../Dialogs.test.tsx
  at Object.<anonymous> node_modules/jsdom/lib/api.js:12:33
```

`jsdom@30` requires Node `^22.22.2 || ^24.15.0 || >=26.0.0`. On Node 20
it cannot load at all, so no test executed, so coverage was 0%, so the
80/75 thresholds failed.

The tempting quick fixes here are both wrong:

- **Pinning `jsdom` back to 29** hides the fact that CI runs an EOL
runtime.
- **Lowering the coverage thresholds** would mask a total test-execution
failure as if it were a coverage regression. Actual coverage on `main`
is healthy at **92.9% statements / 84.1% branches** — the thresholds are
correct and should not be touched.

Raising Node fixes the underlying condition, after which #95 can merge
on its own merits.

## Deliberately not adding an `engines` field

This is a browser-targeted library; Node is only a build and test
concern. Declaring a Node floor in `package.json` would constrain
consumers without benefiting them.

## Verification

CI on this PR is itself the test — every job now runs on Node 24. Once
green, I will rebase #95 onto this and confirm the jsdom 30 suite
passes.
@Ndevu12

Ndevu12 commented Jul 31, 2026

Copy link
Copy Markdown
Owner

@dependabot rebase

Bumps [jsdom](https://github.com/jsdom/jsdom) from 29.0.0 to 30.0.0.
- [Release notes](https://github.com/jsdom/jsdom/releases)
- [Commits](jsdom/jsdom@v29.0.0...v30.0.0)

---
updated-dependencies:
- dependency-name: jsdom
  dependency-version: 29.1.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/jsdom-29.1.1 branch from 7b0e870 to 944c820 Compare July 31, 2026 23:28
@Ndevu12
Ndevu12 merged commit d329584 into main Jul 31, 2026
7 checks passed
@Ndevu12
Ndevu12 deleted the dependabot/npm_and_yarn/jsdom-29.1.1 branch July 31, 2026 23:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant