From eaeeb3b502e8455f05a49b06ef240fad9694f624 Mon Sep 17 00:00:00 2001 From: Hampus Date: Wed, 30 Sep 2026 22:11:34 +0200 Subject: [PATCH] fix(api): report final system DM progress (#3074) --- fluxer_api/src/api/worker/tasks/SendSystemDm.ts | 6 ++++-- fluxer_api/src/api/worker/tests/SendSystemDmCancel.test.ts | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/fluxer_api/src/api/worker/tasks/SendSystemDm.ts b/fluxer_api/src/api/worker/tasks/SendSystemDm.ts index 295dad199..07fb1d644 100644 --- a/fluxer_api/src/api/worker/tasks/SendSystemDm.ts +++ b/fluxer_api/src/api/worker/tasks/SendSystemDm.ts @@ -6,7 +6,7 @@ import type {User} from '@app/api/models/User'; import {UserChannelService} from '@app/api/user/services/UserChannelService'; import {getWorkerDependencies} from '@app/api/worker/WorkerContext'; import {UserFlags} from '@fluxer/constants/src/UserConstants'; -import {JobCancelledError, type WorkerTaskHelpers} from '@pkgs/worker/src/contracts/WorkerTask'; +import {JobCancelledError, type WorkerTaskHelpers, type WorkerTaskResult} from '@pkgs/worker/src/contracts/WorkerTask'; import {z} from 'zod'; const SYSTEM_USER_ID: UserID = createUserID(0n); @@ -56,7 +56,7 @@ async function* listedRecipients(userIds: Array): AsyncGenerator } } -export async function sendSystemDm(payload: unknown, helpers: WorkerTaskHelpers): Promise { +export async function sendSystemDm(payload: unknown, helpers: WorkerTaskHelpers): Promise { const parsed = PayloadSchema.parse(payload); const {content} = parsed; const total = 'user_ids' in parsed ? parsed.user_ids.length : null; @@ -105,5 +105,7 @@ export async function sendSystemDm(payload: unknown, helpers: WorkerTaskHelpers) } } requestCache.clear(); + await helpers.reportProgress(sent + failed, sent + failed, `${sent} sent, ${failed} failed`); helpers.logger.info({sent, failed, total: sent + failed}, 'System DM job complete'); + return {sent_count: sent, failed_count: failed}; } diff --git a/fluxer_api/src/api/worker/tests/SendSystemDmCancel.test.ts b/fluxer_api/src/api/worker/tests/SendSystemDmCancel.test.ts index c11419d2f..3d32dace1 100644 --- a/fluxer_api/src/api/worker/tests/SendSystemDmCancel.test.ts +++ b/fluxer_api/src/api/worker/tests/SendSystemDmCancel.test.ts @@ -219,7 +219,7 @@ describe('System DM cancellation', () => { await expect(runner.runJob(TASK_TYPE, createJobMessage({all_users: true}) as unknown as JsMsg)).resolves.toBe(true); expect(recipientIds).toEqual([21n, 24n]); - expect(markSucceeded).toHaveBeenCalledTimes(1); + expect(markSucceeded).toHaveBeenCalledWith(LEDGER_JOB_ID, {sent_count: 2, failed_count: 0}); expect(kv.size).toBe(0); }); });