Skip to content

Fix minimum dependency Pro test selection on Node 20#4184

Merged
justin808 merged 1 commit into
mainfrom
jg-codex/fix-main-node20-pro-tests
Jun 24, 2026
Merged

Fix minimum dependency Pro test selection on Node 20#4184
justin808 merged 1 commit into
mainfrom
jg-codex/fix-main-node20-pro-tests

Conversation

@justin808

@justin808 justin808 commented Jun 24, 2026

Copy link
Copy Markdown
Member

Why

main is red because the full main-push JS unit matrix ran the Node 20 minimum-dependency conversion after PR #4168 and then executed packages/react-on-rails-pro/tests/boundedCacheProvider.client.test.tsx. That test imports @testing-library/react and @testing-library/jest-dom, while script/convert intentionally removes @testing-library/* from the root minimum-dependency package set.

Follow-on docs PRs could still merge, but their main-push CI failed before useful docs checks because the docs-only safety guard refuses to validate docs-only pushes when the previous main SHA already has failed workflows. So the later docs merges are symptoms; the original poison is the unskipped Pro client test in the Node 20/minimum-dependency lane.

What changed

Add boundedCacheProvider[.]client[.]test to the Pro test:non-rsc ignore pattern generated by script/convert, matching the existing minimum-dependency treatment for other Pro client/RSC tests that need React 19 or testing-library helpers.

Why I Am Confident

  • The failing main-only lane was reproduced at the routing level: script/convert removes @testing-library/*, and boundedCacheProvider.client.test.tsx imports @testing-library/react plus @testing-library/jest-dom, so it belongs with the existing converted-lane client/RSC test skips.
  • The conversion output was checked in a temp worktree: after running ruby script/convert, the generated Pro test:non-rsc regex ignored tests/boundedCacheProvider.client.test.tsx and did not ignore an unrelated control test, tests/buildCacheKey.test.ts.
  • The exact previously failing main lane passed after merge: JS unit tests for Renderer package / build (20) succeeded on main commit a5b9e7e7d, including the Pro JS tests after conversion.
  • Full hosted PR CI passed before merge, including JS unit tests, Pro package tests, Pro integration, generator tests, integration tests, Playwright, lint, assets, CodeQL, and the long RSpec generator matrix.
  • After merge, every latest-main push/dynamic workflow for a5b9e7e7d completed successfully.

Validation

  • ruby -c script/convert
  • bash -n script/ci-changes-detector && script/ci-changes-detector origin/main
  • Temp-worktree conversion assertion: ran ruby script/convert, confirmed converted packages/react-on-rails-pro/package.json ignores tests/boundedCacheProvider.client.test.tsx, and confirmed the same regex does not ignore tests/buildCacheKey.test.ts.
  • git diff --check && ruby -c script/convert && BUNDLE_GEMFILE=Gemfile bundle exec rubocop script/convert
  • pnpm start format.listDifferent
  • codex review --uncommitted: no actionable correctness issues.
  • codex review --base origin/main: clean.

bin/ci-local --changed was attempted. It failed in repo-wide RuboCop on pre-existing unrelated offenses under react_on_rails/spike/3313_prism_gemfile_rewriter/*; it had already passed setup/docs-sidebar before that unrelated lint failure.

Changelog

Not user-visible.

Summary by CodeRabbit

  • Chores
    • Expanded an internal test ignore list to prevent a specific Pro test suite from being included during the React 18 conversion process.

@justin808

Copy link
Copy Markdown
Member Author

+ci-force-full

@coderabbitai

coderabbitai Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 83876e0b-e968-4a73-a1c5-59f68069a605

📥 Commits

Reviewing files that changed from the base of the PR and between 5c38c50 and 41f6ca7.

📒 Files selected for processing (1)
  • script/convert

Walkthrough

One pattern, boundedCacheProvider[.]client[.]test, is added to the minimum_pro_non_rsc_ignored_tests list in script/convert. This causes the pattern to be included in the --testPathIgnorePatterns regex used for the test:non-rsc Jest run.

Changes

Non-RSC test path ignore update

Layer / File(s) Summary
Add boundedCacheProvider client test to non-RSC ignore list
script/convert
Inserts boundedCacheProvider[.]client[.]test into minimum_pro_non_rsc_ignored_tests, excluding that test file from the test:non-rsc Jest --testPathIgnorePatterns regex.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Possibly related PRs

  • shakacode/react_on_rails#4035: Directly related — also modifies script/convert to update Pro non-RSC Jest ignore pattern generation, the same mechanism this PR extends.

Suggested labels

ready-for-hosted-ci

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the minimum-dependency test selection fix and is specific enough for the main change.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jg-codex/fix-main-node20-pro-tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added force-full-hosted-ci Bypass optimized hosted CI selection and run all hosted suites ready-for-hosted-ci Run optimized hosted GitHub CI for this PR labels Jun 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Force-Full Hosted CI Requested

Triggered 9 workflow(s) for 41f6ca741e09.
Mode: force-full hosted CI (bypasses optimized change selection).
Added ready-for-hosted-ci and force-full-hosted-ci, so future commits will bypass optimized hosted CI selection until +ci-stop-full is used.

View progress in the Actions tab.

@greptile-apps

greptile-apps Bot commented Jun 24, 2026

Copy link
Copy Markdown

Greptile Summary

This PR fixes a CI breakage on the main branch by adding boundedCacheProvider.client.test to the list of Pro tests skipped during the Node 20 / minimum-dependency conversion in script/convert. The test imports @testing-library/react and @testing-library/jest-dom, which script/convert intentionally strips from the root package, causing the test to fail in that lane.

  • Adds one entry to minimum_pro_non_rsc_ignored_tests using the same [.] literal-dot escape pattern already applied to imperativeRefetch.client.test, inlineRefreshButton.client.test, and wrapServerComponentRenderer.client.test.
  • No other files are changed; the fix is purely additive and follows established precedent in the same list.

Confidence Score: 5/5

Safe to merge — single additive entry to an existing ignore list with no side effects on other test paths.

The added entry follows the identical [.] literal-dot escape convention used by every other client test in the list, targets exactly the file confirmed to import @testing-library/react, and is placed in correct alphabetical order.

No files require special attention.

Important Files Changed

Filename Overview
script/convert Adds boundedCacheProvider[.]client[.]test to the minimum-dependency ignored-test list; consistent pattern and correct alphabetical placement.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[CI: Node 20 minimum-dependency lane] --> B[script/convert runs]
    B --> C[Removes @testing-library/* from root package.json]
    B --> D[Generates test:non-rsc ignore pattern]
    D --> E{Test in ignore list?}
    E -- No, before this PR --> F[boundedCacheProvider.client.test runs]
    F --> G["FAIL: @testing-library/react not found"]
    E -- Yes, after this PR --> H[boundedCacheProvider.client.test skipped]
    H --> I[CI green]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[CI: Node 20 minimum-dependency lane] --> B[script/convert runs]
    B --> C[Removes @testing-library/* from root package.json]
    B --> D[Generates test:non-rsc ignore pattern]
    D --> E{Test in ignore list?}
    E -- No, before this PR --> F[boundedCacheProvider.client.test runs]
    F --> G["FAIL: @testing-library/react not found"]
    E -- Yes, after this PR --> H[boundedCacheProvider.client.test skipped]
    H --> I[CI green]
Loading

Reviews (1): Last reviewed commit: "Skip bounded cache test in minimum depen..." | Re-trigger Greptile

@justin808 justin808 merged commit a5b9e7e into main Jun 24, 2026
82 of 83 checks passed
@justin808 justin808 deleted the jg-codex/fix-main-node20-pro-tests branch June 24, 2026 09:32
@justin808 justin808 mentioned this pull request Jun 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

force-full-hosted-ci Bypass optimized hosted CI selection and run all hosted suites ready-for-hosted-ci Run optimized hosted GitHub CI for this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant