fix(api): report final system DM progress (#3074)

This commit is contained in:
Hampus
2026-09-30 22:11:34 +02:00
committed by GitHub
parent dc32a7c70e
commit eaeeb3b502
2 changed files with 5 additions and 3 deletions
@@ -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<string>): AsyncGenerator<UserID>
}
}
export async function sendSystemDm(payload: unknown, helpers: WorkerTaskHelpers): Promise<void> {
export async function sendSystemDm(payload: unknown, helpers: WorkerTaskHelpers): Promise<WorkerTaskResult> {
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};
}
@@ -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);
});
});