Commit Graph

279 Commits

Author SHA1 Message Date
Johan Persson cd0b8a11a3 chore: make jest a peer dependency with v29/v30 support
Move jest from dependencies to peer dependencies, allowing users to
choose between Jest 29 and Jest 30.

The CLI now detects the Jest version at runtime and uses the
appropriate environment:
- Jest 29: Uses standard jest-environment-jsdom
- Jest 30: Uses a custom environment based on @jest/environment-jsdom-abstract
  with fixes for Web API globals (fetch, streams, Error, etc.)

The cross-fetch polyfill is only injected for Jest 29, as with Jest 30+
our patched Jest environment is used. The network request blocker is made
MSW-compatible by checking if fetch was wrapped before blocking.

Jest 30 (with jsdom v27) fixes `Could not parse CSS stylesheet`
warnings/errors when testing components from @backstage/ui or other
packages using CSS `@layer` declarations.

New peer dependencies (install based on your Jest version):
- jest (required, ^29 or ^30)
- Jest 29 requires: jest-environment-jsdom
- Jest 30 requires: @jest/environment-jsdom-abstract, jsdom

Production code changes for jsdom 27 testability:
- AppIdentityProxy: extract navigateToUrl method for spying
- LiveReloadAddon: export utils.reloadPage for spying
- collect.ts: export internal.resolvePackagePath for mocking

MockFetchApi: evaluate global.fetch at call time instead of construction
time, allowing MSW to patch fetch after MockFetchApi is constructed.

Test adaptations for jsdom 27:
- Use RGB values instead of named colors in CSS assertions
- Update error format expectations (hyphenated type names, SyntaxError
  instead of FetchError for JSON parse errors)
- Simplify URL error assertions for cross-version compatibility
- Fix accessible name whitespace handling for external links
- Use history.replaceState for location mocking (non-configurable)
- Use fireEvent.blur for contentEditable elements
- Move async assertions inside waitFor for race conditions
- Remove Blob.prototype.text polyfill (now native)
- Remove test case using credentials in plugin:// URLs

Test adaptations for Jest 30:
- Replace `expect.objectContaining([...])` with direct array equality
- Replace `expect.objectContaining({ length: N })` with
  `expect.any(Array)` + separate `toHaveLength()` assertions
- Use child process for native Node.js module resolution in
  collect.test.ts to work around Jest 30's resolver behavior
- Update snapshot headers for new Jest format

Also removes the jest-haste-map patch which is no longer needed.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2025-12-11 18:06:55 +01:00
github-actions[bot] e08f48a9b5 Version Packages (next) 2025-12-09 15:00:09 +00:00
github-actions[bot] 336db00d21 Version Packages (next) 2025-12-02 15:37:41 +00:00
github-actions[bot] 756986e5e7 Version Packages (next) 2025-11-25 16:21:32 +00:00
github-actions[bot] 792f4d7e3d Version Packages 2025-11-18 12:23:09 +00:00
github-actions[bot] 3738293d26 Version Packages (next) 2025-11-04 15:00:26 +00:00
Fredrik Adelöw 7a26c0947e Merge pull request #31480 from schultzp2020/fix/erasable-syntax-enums
feat: convert all enums to erasable-syntax compliant patterns
2025-11-04 13:39:59 +01:00
Gabriel Dugny f520c0b1c4 fix(ui): Set color-scheme, notably to have proper scrollbar theming
Signed-off-by: Gabriel Dugny <gabriel.dugny@believe.com>
2025-10-29 10:14:31 +01:00
github-actions[bot] 2c1fe37d3b Version Packages (next) 2025-10-24 13:22:48 +00:00
github-actions[bot] 807af8ce0e Version Packages (next) 2025-10-21 16:14:43 +00:00
Paul Schultz b2bef924b2 feat: convert all enums to erasable-syntax compliant patterns
Signed-off-by: Paul Schultz <pschultz@pobox.com>
2025-10-21 10:20:01 -05:00
Gabriel Dugny bc76c10bd4 fix(techdocs-cli): Missing styles, illegible pages
Signed-off-by: Gabriel Dugny <gabriel.dugny@believe.com>
2025-10-17 10:45:31 +02:00
github-actions[bot] d6ce2db9ca Version Packages 2025-10-14 15:29:54 +00:00
Gabriel Dugny 43afbe50aa feat(techdocs): POC livereload for techdocs-cli serve (#30541)
* feat(techdocs): POC livereload for techdocs-cli serve

Signed-off-by: Gabriel Dugny <gabriel.dugny@believe.com>

* chore: techdocs reload tests, refactor

Signed-off-by: Gabriel Dugny <gabriel.dugny@believe.com>

---------

Signed-off-by: Gabriel Dugny <gabriel.dugny@believe.com>
2025-10-07 13:29:14 -04:00
github-actions[bot] ffb5b44d86 Version Packages (next) 2025-09-30 14:42:12 +00:00
github-actions[bot] c2c60546d2 Version Packages (next) 2025-09-24 12:57:42 +00:00
github-actions[bot] c73bfa46d4 Version Packages (next) 2025-09-23 15:00:29 +00:00
github-actions[bot] b799a2d07f Version Packages 2025-09-16 13:22:58 +00:00
Paul Schultz 133ac7ad66 fix(repo-tools): resolve knip-reports failure with spaces in workspace paths
Signed-off-by: Paul Schultz <pschultz@pobox.com>
2025-09-15 12:34:26 -05:00
github-actions[bot] ac48eeb3ba Version Packages (next) 2025-09-02 12:17:03 +00:00
github-actions[bot] 9c441f9a78 Version Packages (next) 2025-08-25 15:09:39 +00:00
github-actions[bot] b93a3471c2 Version Packages 2025-08-19 13:01:39 +00:00
github-actions[bot] 1e8a013c67 Version Packages (next) 2025-08-05 13:45:29 +00:00
github-actions[bot] 531a48848c Version Packages (next) 2025-07-29 14:40:44 +00:00
github-actions[bot] 4704160491 Version Packages (next) 2025-07-22 15:06:26 +00:00
github-actions[bot] 9a7cae26c9 Version Packages 2025-07-15 14:26:41 +00:00
github-actions[bot] eef10dfb4d Version Packages (next) 2025-07-08 13:35:26 +00:00
github-actions[bot] 952cefedd8 Version Packages (next) 2025-07-01 11:50:02 +00:00
github-actions[bot] f1e160615c Version Packages (next) 2025-06-24 12:20:36 +00:00
github-actions[bot] 58558ef2c1 Version Packages 2025-06-17 12:45:56 +00:00
github-actions[bot] 9c9faf2ec1 Version Packages (next) 2025-06-11 10:06:10 +00:00
github-actions[bot] f628f44cab Version Packages (next) 2025-06-10 14:28:09 +00:00
github-actions[bot] d57a6f7828 Version Packages (next) 2025-06-03 13:12:47 +00:00
github-actions[bot] 19f0650b16 Version Packages (next) 2025-05-27 14:48:17 +00:00
github-actions[bot] 389d265b60 Version Packages 2025-05-20 08:25:02 +00:00
github-actions[bot] 1c0cb7be17 Version Packages (next) 2025-05-13 13:52:18 +00:00
github-actions[bot] 35a0c4b598 Version Packages (next) 2025-05-06 13:51:57 +00:00
github-actions[bot] 125d09682e Version Packages (next) 2025-04-29 14:27:15 +00:00
github-actions[bot] ce2cf32847 Version Packages (next) 2025-04-22 12:36:56 +00:00
github-actions[bot] 2582af906d Version Packages 2025-04-15 15:36:15 +00:00
github-actions[bot] c590c4413a Version Packages (next) 2025-04-08 18:12:41 +00:00
Paul Schultz 2e26579e06 chore: update react imports
Signed-off-by: Paul Schultz <pschultz@pobox.com>
2025-04-08 07:35:24 -05:00
github-actions[bot] 2fc663ad48 Version Packages (next) 2025-04-01 13:24:16 +00:00
github-actions[bot] 55905367dd Version Packages (next) 2025-03-25 12:51:22 +00:00
github-actions[bot] 127408219b Version Packages 2025-03-18 12:55:57 +00:00
github-actions[bot] 68af69b2b8 Version Packages (next) 2025-03-11 16:50:56 +00:00
github-actions[bot] f9fb465e38 Version Packages (next) 2025-03-04 16:49:37 +00:00
github-actions[bot] aed536abc5 Version Packages (next) 2025-02-25 13:17:11 +00:00
github-actions[bot] 0df84b6ae4 Version Packages 2025-02-18 15:19:53 +00:00
github-actions[bot] 549edc389e Version Packages (next) 2025-02-11 15:39:12 +00:00