You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by "Baluduvamsi2006 (via GitHub)" <gi...@apache.org> on 2026/03/06 20:25:09 UTC
[PR] Refactor/resource list page test pr [apisix-dashboard]
Baluduvamsi2006 opened a new pull request, #3318:
URL: https://github.com/apache/apisix-dashboard/pull/3318
What this PR does
This PR introduces a reusable ResourceListPage component and refactors existing resource list pages to use it.
Previously, each resource list page (Services, Routes, Consumers, Upstreams, Stream Routes, SSLs, etc.) duplicated nearly identical logic for ProTable configuration, pagination, page headers, loading states, and error handling. This duplication increased maintenance overhead and risked long-term inconsistencies.
With this change:
Common list-page logic is centralized into a strictly typed <ResourceListPage /> component.
Resource pages now only define resource-specific columns and API query hooks.
Pagination behavior (pageSizeOptions, showTotal) is configurable per page instead of being hardcoded.
The original UI behavior is preserved 1:1 (including disabled toolbar options, layout, and styling).
Performance & Architecture Improvements
Fixed React infinite re-render loops caused by passing inline anonymous hook functions by instead passing stable, destructured query results.
Preserved existing React Suspense fetching behavior and TanStack Router loaderDeps prefetching, avoiding regressions such as loading-state flashes or broken error boundaries.
Ensured API error handling continues to be captured by existing React error boundaries without behavioral changes.
E2E Test Stability Improvements
This PR also improves Playwright E2E test reliability by:
Removing long, hardcoded static waits (e.g., 8000ms delays) from CI test flows.
Replacing them with dynamic synchronization using expect().toPass() polling to wait for backend state propagation.
Tightening selectors and handling idempotent DELETE (404) operations gracefully.
Improving cross-platform path handling and removing flaky timing assumptions.
Eliminating residual TypeScript lint warnings and mapped-type conflicts.
Why this change is needed
Eliminates hundreds of lines of duplicated boilerplate across the dashboard.
Guarantees consistent list-page behavior and layout across all resources.
Improves frontend maintainability and readability.
Speeds up GitHub Actions E2E runs by removing unnecessary static delays.
Establishes a scalable pattern for future resource list pages.
Checklist
UI refactor only (no API or behavioral changes)
Backward compatible
TypeScript / ESLint passed (0 errors)
Build passed successfully
All Playwright E2E tests passing (37/37)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Refactor/resource list page test pr [apisix-dashboard]
Posted by "Baluduvamsi2006 (via GitHub)" <gi...@apache.org>.
Baluduvamsi2006 closed pull request #3318: Refactor/resource list page test pr
URL: https://github.com/apache/apisix-dashboard/pull/3318
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org