The GitHub Actions job "CI" on 
rocketmq-dashboard.git/fix/dlq-export-selected-count has failed.
Run started by GitHub user unbridled-41 (triggered by unbridled-41).

Head commit for run:
d78471db7a19cb9bb7665316c83ffbf0d8685306 / unbridled-41 
<[email protected]>
fix(dlq): report the rows the Excel export actually wrote, not the requested 
selection

GET /dlq/export-excel applies the msgIds as a filter over the freshly scanned
window:

    List<DLQMessageVO> messages = scanResult.messages().stream()
            .filter(message -> selected.isEmpty() || 
selected.contains(message.getMsgId()))
            ...

and the response only described scan completeness (truncated, failedQueueCount,
limit). The page then claimed the request as the result:

    message.success(`已导出 ${detailSelectedMsgIds.length > 0 ? `选中的 
${detailSelectedMsgIds.length} 条` : '全部'}死信消息…`)

So a selected message that is no longer in the export window - the operator
changed the range after ticking rows, or another operator resent it in between -
is silently missing from the .xlsx while the toast says it was exported, and
nothing in the sheet, the response or the audit trail records the shortfall.

Count what was written: the export result now carries exportedRows and
selectedRows, the endpoint exposes them as X-DLQ-Export-Rows /
X-DLQ-Export-SelectedRows (also added to the CORS exposed-headers list and 
parsed
by the web client), and the page warns when a selection was only partially
written instead of claiming success.

Tests:
- server: cd server && mvn -o -B -ntp test 
-Dtest='RocketMQDLQProviderTest,DLQControllerTest,DLQServiceTest'
  -> Tests run: 105, Failures: 0, Errors: 0. New
  RocketMQDLQProviderTest#exportExcelReportsTheRowsItWroteForASelectionTest pins
  exportedRows=1 / selectedRows=2 for a selection with one vanished id (the 
fields
  did not exist before, so it is compile-red on the old code).
- web: cd web && npx vitest run src/pages/instance/__tests__/DLQPage.test.tsx 
src/api/message.test.ts
  -> Tests 38 passed. New case "reports how many selected messages the export
  actually contained" fails before this change (the page showed its success 
claim)
  and passes after it, asserting the warning names the missing rows.
- npx eslint reports no errors; npx tsc -b passes; checkstyle passes.

Report URL: 
https://github.com/apache/rocketmq-dashboard/actions/runs/37979586637

With regards,
GitHub Actions via GitBox

Reply via email to