You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add comprehensive tests for Phase 3 RSC utility methods
Add tests for the three RSC utility methods moved to Pro gem:
- rsc_support_enabled?: Tests enabled/disabled states
- rsc_bundle_js_file_path: Tests delegation to bundle_js_file_path,
caching behavior in development vs production
- react_client_manifest_file_path: Tests packer integration with
dev server running/not running, caching behavior
- react_server_client_manifest_file_path: Tests delegation,
caching behavior, error handling when manifest is nil
Total: ~210 lines of tests ensuring all RSC utility methods work
correctly in the Pro gem with proper caching and error handling.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
"Bash(gh pr comment 1854 --body \"$(cat <<''EOF''\n## Closing this PR - Change in Plan\n\nAfter discussion with @justin808, we''ve decided on a different approach:\n\n**New Plan:**\n- Keep the immediate hydration Ruby code in the MIT gem (move from `lib/react_on_rails/pro/` to regular `lib/react_on_rails/`)\n- Make it disabled by default when Pro gem is not installed\n- Automatically enable it when Pro gem is present\n- The actual functionality remains in the Pro npm package, so users can''t hack it by editing Ruby code\n\n**Benefits:**\n- Marketing visibility: All users see the Pro feature exists\n- Professional presentation: Non-intrusive way to inform users about Pro features\n- No security risk: Core logic stays in Pro npm package\n- Clean separation: Ruby code in MIT, functionality in Pro packages\n\n**Next Steps:**\n- Will open a new, simpler PR that just moves `lib/react_on_rails/pro/` code to MIT license\n- Update LICENSE.md accordingly\n- Update documentation\n\nThis PR did valuable work in establishing the data enhancement pattern and will serve as reference, but the simpler approach is more aligned with business goals.\nEOF\n)\")",
13
+
"Bash(gh pr close:*)",
14
+
"Bash(git checkout:*)",
15
+
"Bash(git pull:*)",
16
+
"Bash(git fetch:*)",
17
+
"Bash(bundle exec rspec:*)",
18
+
"Bash(git add:*)",
19
+
"Bash(git push:*)",
20
+
"Bash(git revert:*)",
21
+
"Bash(git rm:*)",
22
+
"Bash(gh pr list:*)",
23
+
"Bash(gh issue create --title \"Migrate React on Rails Pro CI from CircleCI to GitHub Actions\" --body \"$(cat <<''EOF''\n## Summary\n\nMigrate the React on Rails Pro package CI/CD pipeline from CircleCI to GitHub Actions to consolidate all testing infrastructure in one platform.\n\n## Background\n\nCurrently:\n- **Main package** (react-on-rails): Uses GitHub Actions (`.github/workflows/*.yml`)\n- **Pro package** (react-on-rails-pro): Uses CircleCI (`.circleci/config.yml`)\n\nThis creates maintenance overhead and splits CI visibility across two platforms.\n\n## Migration Plan\n\n### CircleCI Jobs to Migrate (10 jobs total):\n\n1. **lint-js-and-ruby** - Linting for Pro package (JS, Ruby, formatting, TypeScript)\n2. **install-package-node-packages** - Install Pro package node modules (caching job)\n3. **install-dummy-app-node-packages** - Install dummy app node modules (caching job)\n4. **install-package-ruby-gems** - Install Pro package Ruby gems (caching job)\n5. **install-dummy-app-ruby-gems** - Install dummy app Ruby gems (caching job)\n6. **build-dummy-app-webpack-test-bundles** - Build webpack test bundles\n7. **package-js-tests** - Jest unit tests for Pro package\n8. **rspec-package-specs** - RSpec tests for Pro package\n9. **rspec-dummy-app-node-renderer** - RSpec integration tests with Node renderer (includes test splitting)\n10. **dummy-app-node-renderer-e2-tests** - Playwright E2E tests (requires Redis service)\n\n### New GitHub Actions Workflows (3 files):\n\n1. **`.github/workflows/pro-lint.yml`** - Linting workflow\n2. **`.github/workflows/pro-package-tests.yml`** - Unit tests workflow\n3. **`.github/workflows/pro-integration-tests.yml`** - Integration & E2E tests workflow\n\n### Key Implementation Details:\n\n- **Test Parallelization**: Use GitHub Actions matrix strategy with sharding for RSpec tests (replaces CircleCI test splitting)\n- **Redis Service**: Use GitHub Actions service containers for E2E tests\n- **Caching**: Migrate to `actions/cache@v4` with similar key patterns\n- **Ruby/Node Versions**: Ruby 3.3.7, Node 20/22\n- **Browser Tests**: Chrome installation for Capybara/Playwright tests\n- **Working Directory**: All commands run from `react_on_rails_pro/`\n- **Artifacts**: Store test results, screenshots, and logs\n\n### Migration Strategy:\n\n✅ **Phase 1**: Create GitHub Actions workflows (keep CircleCI running in parallel)\n✅ **Phase 2**: Verify all tests pass and artifacts are stored correctly \n✅ **Phase 3**: Monitor both systems for 1-2 weeks\n✅ **Phase 4**: Remove CircleCI config once GitHub Actions is proven stable\n\n### Technical Feasibility:\n\n✅ All CircleCI features can be replicated in GitHub Actions\n✅ Test splitting: Achievable with matrix strategy + RSpec sharding\n✅ Redis service: Native support via service containers\n✅ Background processes: Works identically in both platforms\n✅ Caching: Full support with similar patterns\n✅ Artifacts & test results: Full support\n\n**No blockers identified** - migration is straightforward and low-risk.\n\n## Benefits\n\n- ✅ Unified CI platform (all workflows in GitHub Actions)\n- ✅ Better visibility (all CI results in one place)\n- ✅ Reduced maintenance overhead\n- ✅ Cost consolidation\n- ✅ Consistent workflow patterns across main and pro packages\n\n## Related\n\n- Main package workflows: `.github/workflows/main.yml`, `lint-js-and-ruby.yml`, etc.\n- CircleCI config: `.circleci/config.yml`\nEOF\n)\")",
0 commit comments