Skip to content

phase a/fix playwright webserver#48

Merged
aksOps merged 2 commits into
mainfrom
phase-a/fix-playwright-webserver
Apr 17, 2026
Merged

phase a/fix playwright webserver#48
aksOps merged 2 commits into
mainfrom
phase-a/fix-playwright-webserver

Conversation

@aksOps

@aksOps aksOps commented Apr 17, 2026

Copy link
Copy Markdown
Contributor
  • chore(baseline): scaffold baseline dirs and gitignore
  • chore(baseline): add seed-repo fetch script with pinned commits
  • chore(baseline): add Maven verify + JaCoCo capture script
  • chore(baseline): add flaky-test scan (N repeated runs)
  • chore(baseline): add SpotBugs baseline capture
  • chore(baseline): add dependency-tree + license snapshot capture
  • chore(baseline): add frontend audit (npm audit + Vite + Playwright)
  • chore(baseline): add index/enrich/serve-smoke pipeline capture
  • chore(baseline): run pipeline on realworld-express
  • chore(baseline): add OWASP dependency-check baseline capture (NVD sync needs retry)
  • chore(baseline): add consolidator and publish first BASELINE.md
  • fix(e2e): wire playwright webServer to boot live code-iq backend
  • docs(baseline): capture real Playwright chromium pass rate (33/131)

@coderabbitai

coderabbitai Bot commented Apr 17, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@aksOps has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 14 minutes and 30 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 14 minutes and 30 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: b5468ea9-e448-43b8-9948-1b84451984c7

📥 Commits

Reviewing files that changed from the base of the PR and between a131a80 and afbaa42.

📒 Files selected for processing (2)
  • docs/superpowers/baselines/2026-04-17/BASELINE.md
  • src/main/frontend/playwright.config.ts
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch phase-a/fix-playwright-webserver

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

aksOps added 2 commits April 17, 2026 13:04
Adds a webServer block to src/main/frontend/playwright.config.ts so
npm run test:e2e boots a real code-iq serve against the
spring-petclinic fixture before any spec runs, removing the root cause
of the 0-pass / 575-fail Playwright audit result.

Design choices:
- /api/stats is the readiness probe, not /actuator/health (today
  returns 503 OUT_OF_SERVICE; tracked separately on
  phase-a/fix-graph-health).
- bash -c "exec java ..." so Playwright can signal the JVM cleanly on
  teardown, and so the *-cli.jar glob expands.
- Overridable via BASE_URL (skip webServer entirely), E2E_FIXTURE (pick
  a different pre-enriched repo), E2E_PORT (avoid port conflicts).
- baseURL unchanged for spec code — still http://localhost:8080 by
  default, overridable via BASE_URL.

Verified on this machine:
- webServer boots the backend; /api/stats returns 200 within 120s.
- Playwright connects to the backend.

Remaining system-level blocker (not a config issue):
chromium headless shell is missing 8 shared libraries on this host
(libatk-1.0, libXcomposite, libgbm, libatspi, ...). Fix once per host:

    sudo npx playwright install-deps chromium

Once that's run, npm run test:e2e exercises the full 131-test
chromium suite against a real backend. The original baseline
0p/575f number was the sum across 7 Playwright projects.
Documented in BASELINE.md.
With the webServer wiring in place + system deps installed via
`sudo npx playwright install-deps chromium`, ran the full chromium
project (19.2 min wall time). Results:

  33 passed / 94 failed / 4 skipped

Huge jump from the "0 passed / 575 failed" baseline — the 575 was the
sum across 7 Playwright projects (4 browsers × many responsive
breakpoints), and all of it was caused by not having a backend. With
a live backend against the spring-petclinic fixture, a third of the
chromium suite passes.

The remaining 94 failures are NOT environmental; they're genuine test
↔ UI divergence:

  - expect(locator).toBeVisible / element(s) not found — selectors
    targeting UI elements that don't render in the current build
    (component/CSS-class renames).
  - strict mode violations on `getByText(/0/)` — tests assume unique
    stat values; spring-petclinic's 691-node graph produces many
    zero-valued cards, so the match resolves to 8+ elements.
  - toHaveLength mismatches — expected N list items, got different count.
  - "Button has no aria-label" in accessibility.spec.ts — real a11y
    regressions, not a test bug.
  - 30s timeouts on locator.focus / locator.boundingBox — elements
    that never appear.

Treating the chromium 33/94/4 split as the honest Phase A baseline.
Test-suite maintenance (update selectors to match current UI, or
generate a deterministic fixture) is scoped out of Phase A.
@aksOps aksOps force-pushed the phase-a/fix-playwright-webserver branch from 7bf236d to afbaa42 Compare April 17, 2026 13:04
@aksOps aksOps merged commit bce0a01 into main Apr 17, 2026
6 checks passed
@sonarqubecloud

Copy link
Copy Markdown

aksOps added a commit that referenced this pull request Apr 23, 2026
…ructured/sql taxonomy (#47)

Group language/format detectors under semantic parent packages:

- jvm/        -> java, kotlin, scala
- markup/     -> docs (renamed)
- systems/    -> rust, cpp
- script/     -> shell
- structured/ -> config (renamed)
- sql/        -> placeholder (follow-up #48)

Imports only; zero behavior change. All 3278 tests still green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
aksOps added a commit that referenced this pull request Apr 23, 2026
…ructured/sql taxonomy (#47) (#56)

Group language/format detectors under semantic parent packages:

- jvm/        -> java, kotlin, scala
- markup/     -> docs (renamed)
- systems/    -> rust, cpp
- script/     -> shell
- structured/ -> config (renamed)
- sql/        -> placeholder (follow-up #48)

Imports only; zero behavior change. All 3278 tests still green.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
aksOps added a commit that referenced this pull request Apr 23, 2026
Adds a SqlMigrationDetector under detector/sql that extracts schema-level
entities (tables, views, schemas) from raw SQL DDL and framework-specific
migration files: Flyway (V*__*.sql), Liquibase (XML + YAML), Alembic
(versions/*.py with alembic/op marker guard), Rails (db/migrate/*.rb),
and Prisma (migrations/*/migration.sql). Path/marker discriminators
prevent false positives on arbitrary .py/.rb/.xml/.yml.

Enum additions:
- NodeKind.SQL_ENTITY (new): schema-level table/view/schema node,
  distinct from the code-level ENTITY (JPA/ORM) kind.
- EdgeKind.REFERENCES_TABLE (new): any node (JPA ENTITY, ORM model,
  raw SQL_ENTITY) -> SQL_ENTITY, pairing with existing ORM detectors.
- EdgeKind.MIGRATES (reused): MIGRATION -> SQL_ENTITY. Unused in
  production code elsewhere; only referenced by ModelCoverageTest.

LayerClassifier: SQL_ENTITY classified as `infra`.

Deterministic output (sorted by id on emit); detector is stateless.
ALTER TABLE ADD COLUMN enriches the owning entity via columns_added
property; did not model columns as child nodes to keep graph size
reasonable. DROP TABLE is skipped with a debug log.

Tests: 16 new tests covering positive paths (raw SQL, Flyway, Alembic,
Liquibase XML, Liquibase YAML, Rails, Prisma), negative paths (plain
.py/.yaml, Alembic path without marker), determinism, and DDL variants
(DROP, CREATE INDEX, ALTER TABLE). Test count 3278 -> 3294.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@aksOps aksOps deleted the phase-a/fix-playwright-webserver branch April 26, 2026 05:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant