feat: generate real-browser frontend test defaults - #1566
Conversation
|
Warning Review limit reached
Next review available in: 20 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (33)
📝 WalkthroughWalkthrough생성 앱에 Chromium 기반 Vitest 컴포넌트 테스트, fail-closed MSW 픽스처, Playwright 사용자 여정, sharded 브라우저 CI 리포트, Problem 표시 UI와 생성 결과 검증이 추가되었습니다. Changes생성 앱 브라우저 테스트 기본값
Estimated code review effort: 4 (Complex) | ~60 minutes Possibly related issues
Possibly related PRs
Sequence Diagram(s)sequenceDiagram
participant GeneratedApp
participant MSW
participant Vitest
participant Playwright
participant BrowserCI
GeneratedApp->>MSW: API 요청 전달
MSW-->>Vitest: Problem 픽스처 또는 미처리 요청 오류
Vitest-->>GeneratedApp: 컴포넌트 렌더링 검증
Playwright->>GeneratedApp: 사용자 여정 실행
BrowserCI->>Playwright: Chromium shard 실행
Playwright-->>BrowserCI: 브라우저 증거와 blob 리포트 업로드
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
📊 Benchmark Results✅ All benchmarks passed
Updated: 2026-07-27T11:02:00.390Z · Commit: c538543 |
1016894 to
614d2d1
Compare
There was a problem hiding this comment.
Actionable comments posted: 6
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/create-croco-app/src/helpers/fs.ts`:
- Around line 55-68: Replace the regex-based GitHub expression protection in
packages/create-croco-app/src/helpers/fs.ts#L55-L68 with a shared stateful
parser that recognizes quoted strings and locates the actual closing delimiter,
then use that same boundarying helper during rendering and in
packages/create-croco-app/src/tests/e2e-generation.spec.ts#L81-L86. Ensure
validation checks only leftover Handlebars placeholders, while valid GitHub
expressions containing }} inside quoted strings remain protected and restored
correctly.
In `@packages/create-croco-app/src/tests/e2e-generation.spec.ts`:
- Around line 334-340: Update assertBrowserWorkflowUsesImmutableActions to
extract actual uses: lines from workflow and validate every remote action
reference ends with exactly a 40-character hexadecimal commit SHA. Do not rely
on searching expected SHA strings or only rejecting version tags; exclude local
or Docker references as appropriate while rejecting branches, tags, and other
mutable refs.
In
`@packages/create-croco-app/templates/spa-be-split/apps/console-web/src/ProblemNotice.component.spec.tsx`:
- Line 4: Update the imports in ProblemNotice.component.spec.tsx to keep the
runtime ProblemNotice import separate from the type-only FrontendProblem import,
using a standalone import type declaration for FrontendProblem.
In
`@packages/create-croco-app/templates/spa-be-split/apps/console-web/src/test/browser.ts`:
- Around line 8-12: Update the onUnhandledRequest handler to throw a dedicated
Problem subclass such as UnhandledApiRequestProblem instead of a generic Error.
Define or reuse the project-standard Problem subtype with appropriate code and
category fields, while preserving the existing fail-closed message containing
the request method and URL.
In
`@packages/create-croco-app/templates/spa-be-split/apps/console-web/src/test/server.ts`:
- Around line 4-11: Rename the immutable problem fixture to
SCREAMING_SNAKE_CASE: update problemFixture to PROBLEM_FIXTURE in
packages/create-croco-app/templates/spa-be-split/apps/console-web/src/test/server.ts
(lines 4-11), and update its import and usages in
packages/create-croco-app/templates/spa-be-split/apps/console-web/src/ProblemNotice.component.spec.tsx
(line 7). Rename the problem fixture to PROBLEM in
packages/create-croco-app/templates/spa-be-split/tests/journeys/problem-rendering.spec.ts
(lines 3-10) and update all references there.
In
`@packages/create-croco-app/templates/spa-be-split/apps/console-web/vitest.config.ts`:
- Around line 8-9: Align the Vitest test discovery and template test location:
update the include pattern in vitest.config.ts to target src/tests/**/*.spec.ts,
and move/rename the ProblemNotice component spec from
src/ProblemNotice.component.spec.tsx to src/tests/ProblemNotice.spec.ts while
preserving its test behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: fd723abc-0ff8-473f-ba98-3e4b38ae53fb
📒 Files selected for processing (30)
.changeset/brave-browsers-test.md.oxfmtignorepackages/create-croco-app/src/helpers/fs.tspackages/create-croco-app/src/tests/e2e-generation.spec.tspackages/create-croco-app/src/tests/templates-build.spec.tspackages/create-croco-app/templates/admin-console/README.md.hbspackages/create-croco-app/templates/admin-console/apps/console-web/package.json.hbspackages/create-croco-app/templates/admin-console/package.json.hbspackages/create-croco-app/templates/blank/.gitignorepackages/create-croco-app/templates/spa-be-split/.github/workflows/browser-tests.ymlpackages/create-croco-app/templates/spa-be-split/README.md.hbspackages/create-croco-app/templates/spa-be-split/apps/console-web/package.json.hbspackages/create-croco-app/templates/spa-be-split/apps/console-web/public/mockServiceWorker.jspackages/create-croco-app/templates/spa-be-split/apps/console-web/src/App.tsx.hbspackages/create-croco-app/templates/spa-be-split/apps/console-web/src/ProblemNotice.component.spec.tsxpackages/create-croco-app/templates/spa-be-split/apps/console-web/src/ProblemNotice.tsxpackages/create-croco-app/templates/spa-be-split/apps/console-web/src/api/client.tspackages/create-croco-app/templates/spa-be-split/apps/console-web/src/api/useUsers.tspackages/create-croco-app/templates/spa-be-split/apps/console-web/src/test/browser.tspackages/create-croco-app/templates/spa-be-split/apps/console-web/src/test/server.tspackages/create-croco-app/templates/spa-be-split/apps/console-web/tsconfig.json.hbspackages/create-croco-app/templates/spa-be-split/apps/console-web/vite.config.ts.hbspackages/create-croco-app/templates/spa-be-split/apps/console-web/vitest.config.tspackages/create-croco-app/templates/spa-be-split/package.json.hbspackages/create-croco-app/templates/spa-be-split/playwright.config.tspackages/create-croco-app/templates/spa-be-split/pnpm-workspace.yaml.hbspackages/create-croco-app/templates/spa-be-split/tests/journeys/browser-evidence.tspackages/create-croco-app/templates/spa-be-split/tests/journeys/create-user.spec.tspackages/create-croco-app/templates/spa-be-split/tests/journeys/problem-rendering.spec.tsscripts/create-croco-app-generated-smoke.mts
|
@coderabbitai resolve |
✅ Action performedComments resolved and changes approved. |
cc215a8 to
3cdca5a
Compare
Outcome
Verification
Review gates
Residual risk
Browser dependency and action revisions are intentionally pinned and will require explicit upgrades as upstream releases change.
Fixes #1485
Summary by CodeRabbit
새로운 기능
문서
버그 수정