fix(worker): throw on invalid approvedAt in index processor

This commit is contained in:
2026-05-28 00:19:14 +05:30
parent 1e421c0073
commit 6f18433c67
2 changed files with 12 additions and 1 deletions
@@ -56,4 +56,11 @@ describe('processIndexJob', () => {
expect.objectContaining({ approvedAt: new Date('2026-01-01T00:00:00.000Z').getTime() }),
);
});
it('throws for invalid approvedAt string', async () => {
const mockClient = {} as any;
await expect(processIndexJob(makeJob({ approvedAt: 'not-a-date' }), mockClient)).rejects.toThrow(
'Invalid approvedAt timestamp: "not-a-date"',
);
});
});
+5 -1
View File
@@ -4,6 +4,10 @@ import { MeiliSearch, MeiliDocument, indexMessage } from '@tower/search';
import { parseRedisUrl } from './redis-connection';
export async function processIndexJob(job: IndexJobData, meiliClient: MeiliSearch): Promise<void> {
const approvedAt = new Date(job.approvedAt).getTime();
if (Number.isNaN(approvedAt)) {
throw new Error(`Invalid approvedAt timestamp: "${job.approvedAt}"`);
}
const doc: MeiliDocument = {
id: job.messageId,
content: job.content,
@@ -12,7 +16,7 @@ export async function processIndexJob(job: IndexJobData, meiliClient: MeiliSearc
sourceGroupName: job.sourceGroupName,
tags: job.tags,
platform: job.platform,
approvedAt: new Date(job.approvedAt).getTime(),
approvedAt,
};
await indexMessage(meiliClient, doc);
}