Skip to content

Fixes 33120: Move column-grid checks to component tests - #33121

Draft
pmbrull wants to merge 1 commit into
mainfrom
pmbrull/playwright-queue-audit
Draft

Fixes 33120: Move column-grid checks to component tests#33121
pmbrull wants to merge 1 commit into
mainfrom
pmbrull/playwright-queue-audit

Conversation

@pmbrull

@pmbrull pmbrull commented Sep 10, 2026

Copy link
Copy Markdown
Member

Describe your changes

Fixes #33120

The column-bulk-operations suite uses a real backend to test many local UI states. Replace 22 of its 25 Playwright cases with 19 real component integration cases, retaining three browser contracts for the authenticated page, editor input, and the actual bulk-update job. The retained job test now verifies both occurrences were updated in the server index.

Preserve the complete Playwright/merge-queue analysis and classification exports for follow-up:

Type of change

  • Improvement

High-level design

Render the actual grid, rows, controls, filters, drawer, editor, router and hooks in the existing Jest/Testing Library environment. A small HTTP test adapter replaces network transport while preserving REST request construction and Axios interceptors. Unexpected endpoints fail the test even if application error handling catches the rejection. Controlled responses and timers exercise asynchronous races.

The replacement assertions require real page changes, correct nested-child identity, exact per-occurrence update bodies, loading state, discard and failure/retry behavior. The retained browser helper opens the feature route directly because the shared sidebar helper expects an older navigation structure.

This is the first migration family, not a deletion of all 211 candidates. Permission, general pagination and nested-entity matrices need page-specific replacements. No production implementation, dependency, workflow or merge-queue policy changes are included. An exploratory same-ID cell-refresh concern is documented for follow-up; it does not justify any removed case.

The retiring cases consumed 6.65 cumulative worker-minutes in the audited run. This is historical worker cost, not a measured reduction in queue wall-clock latency.

Tests

Use cases covered

Rendering/statistics, filtering and URL state, empty results, stale responses, selection/counting, drawer fields, discard, exact bulk requests, pending/error/retry handling, unchanged-submit rejection, STRUCT expansion and cursor navigation. Real editor input and server-index propagation remain in Playwright.

Unit tests

  • 33 passed across four targeted suites, including 19 new integration cases in ColumnGrid.integration.test.tsx and the existing ColumnGridTableRow, NextPrevious, and usePaging.integration suites.
  • Dedicated pilot line coverage: ColumnGrid 69.51%, listing hook 62.67%, filter hook 83.01%, ColumnGridTableRow 94%, ColumnGridRow 100%. These describe this suite, not whole-application coverage. No production classes changed.
  • Three temporary faults each failed the intended test: accepting stale responses, omitting the search query, and dropping the second occurrence. Production files were restored byte-for-byte before the passing run.
  • Changed-file ESLint/Prettier, license/pre-commit checks, all 114 lint-rule tests and i18n validation pass. Application-doc generation produces no diff and the generated Playwright rule table is current. The positional-locator suppression baseline and its exact-count test both decrease by five.
  • Repo-wide TypeScript checks remain red. A like-for-like compiler comparison with the baseline produced identical diagnostics: UI 599/599 and Playwright 165/165, with no added or removed diagnostics. The CLI checks were also attempted; their incremental counts differ from the compiler comparison. This PR does not claim a passing whole-repository type check.

Backend integration tests

No backend API changes. The retained browser test submits a real job and polls the real grid index for both updated occurrences. No new Java integration tests.

Ingestion integration tests

Not applicable — no ingestion changes.

Playwright (UI) tests

Three retained tests passed in the standard Chromium project, one worker, no retries (52.7 seconds) against the workspace Vite UI and the local backend. Authentication state was prepared separately; full CI provisioning/sharding was not rerun.

PLAYWRIGHT_TEST_BASE_URL=http://localhost:3001 PW_PRESEEDED_STATE=true \
  PLAYWRIGHT_IS_OSS=true yarn playwright:run \
  playwright/e2e/Features/ColumnBulkOperations.spec.ts \
  --project=chromium --workers=1 --no-deps

Manual testing performed

No additional manual click-through. Automated browser validation logged in locally, opened the column page, edited text containing spaces, submitted a bulk display-name update and verified two indexed occurrences. Fixtures were cleaned up by the spec. Reproduction commands and prerequisites are in the migration document.

UI screen recording / screenshots

Not applicable — tests and documentation only; no production UI behavior or visual change.

Checklist

  • Read CONTRIBUTING.md.
  • PR title follows Fixes <issue-number>: <short explanation>.
  • Linked issue via Fixes #33120.
  • Documented non-obvious test boundaries and migration decisions.
  • Added and ran relevant tests; results and coverage are above.
  • Schema/migration checklist: not applicable — no schema changes.
  • UI recording checklist: not applicable — no production UI changes.
  • Connector documentation checklist: not applicable — no connector changes.

Replace 22 browser variants with real component integration tests.
Retain three browser contracts and preserve the full migration audit.

Refs #33120
@github-actions github-actions Bot added Ingestion safe to test Add this label to run secure Github workflows on PRs labels Sep 10, 2026
@gitar-bot

gitar-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Code Review ✅ Approved

Migrates 22 of 25 column-bulk-operations Playwright cases to 19 component integration tests, retaining three browser contracts for authenticated page, editor input, and bulk-update job verification. All 33 new and existing integration tests pass with comprehensive coverage of rendering, filtering, selection, drawer fields, discard, retry handling, and server-index propagation. No issues found.

Options

Display: compact → Counting what did not apply, without listing it.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Ingestion safe to test Add this label to run secure Github workflows on PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move column-grid state checks to component integration tests

1 participant