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]
