mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-07 19:22:14 +09:00
fix(api): report final system DM progress (#3074)
This commit is contained in:
@@ -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);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user