zmuxuny opened a new pull request, #7388:
URL: https://github.com/apache/rocketmq-dashboard/pull/7388

   ### Which Issue(s) This PR Fixes
   
   Fixes #6752. Replaces stale-closed #6763, retaining the existing 
contribution history and authorship on rocketmq-studio at 
7abf8adaf660d75f2d686bbe8741be76c3a5ddd3.
   
   ### Brief Description
   
   Give each consumer-progress row a collision-free identity by serializing its 
topic, broker and queue ID as a JSON tuple. Concatenating those values with '-' 
makes distinct queues such as orders-west / a / 0 and orders / west-a / 0 share 
a React key. Filtering can then leave an excluded row visible.
   
   The regression filters both colliding queues out, clears the filter, and 
checks the complete rendered rows and offsets. The production change is limited 
to the consumer-progress table.
   
   A reproduced failure in the existing manual subscription-refresh test is 
isolated by faking only interval scheduling in that one test and restoring real 
timers after cleanup, following pilichoumao's #6521. Its original assertions 
remain unchanged. The separate real two-second polling test still runs with 
real timers. No stack-test isolation, timeout increase, API or dependency 
change is included.
   
   ### How Did You Test This Change?
   
   Local checks re-run on 2026-11-04 with Node 24.22.1 and the unchanged 
20-second test timeout. The validated final tree is published at 
b2af3c3f1e99c150c5c8ba4fe7d2756b25ad58f4:
   
   - Final-tree row-identity regression: passed before and after the negative 
control.
   - Negative control: restoring only the production component from the base 
makes the regression fail because an excluded orders row remains visible. 
Restoring the candidate component makes it pass again.
   - Row identity, manual subscription refresh and real two-second subscription 
polling: three independent serial runs, 3/3 passed each time.
   - npx tsc -b, frontend-wide npm run lint, changed-file Prettier and git diff 
--check: passed on the final tree.
   - npm run build: passed on the final tree, including Vite and license check 
(134 components, 141 license files).
   
   The earlier full ConsumerPage.test.tsx run was 62 passed / 11 failed in 594 
seconds. The new regression passed; six existing cases timed out and five 
existing assertions failed. Focused comparisons of those 11 cases passed 10/11 
on both unchanged base and candidate, with different failures: a settings 
timeout on base and manual subscription refresh on candidate. Only the 
reproduced manual-refresh fixture was adjusted. The full 73-case suite was not 
rerun after that adjustment; no full component-suite, whole-frontend-suite or 
hosted-CI pass is claimed.
   
   Repeated focused command: cd web && npx vitest run 
src/pages/instance/__tests__/ConsumerPage.test.tsx -t 
'doesNotRetainExcludedQueuesWhenTopicAndBrokerNamesShareADelimiterKeyTest|highlights
 inconsistent subscriptions and refreshes the check result|refreshes the 
subscription verdict on the 2s modal auto-refresh' --maxWorkers=1.
   
   ### Checklist
   
   - [x] Scoped row-identity fix with a behavioral regression
   - [x] Existing contribution history and authorship retained
   - [x] Manual-test interval isolation preserves original assertions and real 
polling coverage
   - [x] No new UI strings, dependencies or backend changes
   - [x] Final-tree type checking, lint, formatting and production build passed
   - [ ] Full component-suite pass not claimed; earlier failures disclosed above
   - [ ] Hosted CI pending
   
   AI assistance was used for review and validation; the diff and results were 
checked before submission.


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to