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

   ### Which Issue(s) This PR Fixes
   
   - Fixes #7160
   
   ### Brief Description
   
   A bulk retry can finish while its delivery details are open. When the page 
is filtered to FAILED, a successful retry removes that delivery from the next 
list response. The detail dialog then falls back to its unchanged snapshot and 
shows FAILED, the previous attempts and error, and a retry button for a 
delivery the backend has already queued.
   
   Apply the existing single-retry queued state to both the page rows and 
selected snapshot for `succeededIds` from the bulk response. Unsuccessful IDs 
remain unchanged, and refreshed server rows remain authoritative.
   
   This follows up on merged #5665. That change synchronizes details with a row 
that remains in the refreshed page and patches single retries; the missing 
boundary here is a successful bulk retry whose row disappears from a filtered 
response. The new regression starts bulk retry before opening the modal while 
the response is pending, so it follows an available user interaction without 
clicking through a modal mask.
   
   ### How Did You Test This Change?
   
   On `127c47b06a268cc74224d5f34c56ec7c36ac0d55`, the exact final regression 
file produces 2 failures and 4 passes: the two successful-bulk cases still 
render FAILED instead of PENDING. Partial failure, all-failed, request 
rejection, and authoritative server-response controls pass. With the production 
change, all six pass.
   
   Commands run from `web/` with `NODE_OPTIONS=--max-old-space-size=768`:
   
   ```sh
   node node_modules/vitest/vitest.mjs run 
src/pages/ops/__tests__/NotificationDeliveriesBulkRetry.test.tsx 
src/pages/ops/__tests__/NotificationDeliveriesPage.test.tsx src/api/ops.test.ts 
src/services/opsService.test.ts --maxWorkers=1 --reporter=dot
   # 4 files, 57 tests passed (default forks pool)
   
   node node_modules/typescript/bin/tsc -b --force
   # passed
   
   node node_modules/eslint/bin/eslint.js 
src/pages/ops/notificationDeliveries.tsx 
src/pages/ops/__tests__/NotificationDeliveriesBulkRetry.test.tsx
   # passed
   
   node node_modules/prettier/bin/prettier.cjs --check 
src/pages/ops/notificationDeliveries.tsx 
src/pages/ops/__tests__/NotificationDeliveriesBulkRetry.test.tsx
   # passed
   
   git diff --check
   # passed
   ```
   
   The regression file is unchanged between the baseline and fixed runs 
(SHA-256 `05556778043fd1ad0133ecd184e932f59b64d2fa056ec862cec263a1b689f7be`). 
Backend code is unchanged; backend tests and the full frontend suite were not 
run for this patch.
   
   ### Checklist
   
   - [x] One coherent change; unrelated modifications are not bundled in
   - [x] Commit subject follows Conventional Commits
   - [x] Tests added for the change, with names ending in `Test`
   - [x] New source file carries the ASF license header
   - No new UI text, API contract, configuration, or documentation behavior 
changes
   


-- 
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