test(server): add MockJobQueue (#11032)

This commit is contained in:
fengmk2
2025-03-21 04:08:29 +00:00
parent 4ed2c9bd81
commit 55a60906a5
6 changed files with 61 additions and 8 deletions
@@ -4,6 +4,7 @@ export * from './user.mock';
export * from './workspace.mock';
import { MockMailer } from './mailer.mock';
import { MockJobQueue } from './queue.mock';
import { MockTeamWorkspace } from './team-workspace.mock';
import { MockUser } from './user.mock';
import { MockWorkspace } from './workspace.mock';
@@ -14,4 +15,4 @@ export const Mockers = {
TeamWorkspace: MockTeamWorkspace,
};
export { MockMailer };
export { MockJobQueue, MockMailer };
@@ -0,0 +1,26 @@
import Sinon from 'sinon';
import { JobQueue } from '../../base';
export class MockJobQueue {
add = Sinon.createStubInstance(JobQueue).add.resolves();
last<Job extends JobName>(name: Job): { name: Job; payload: Jobs[Job] } {
const addJobName = this.add.lastCall?.args[0];
const payload = this.add.lastCall?.args[1];
if (!payload) {
throw new Error('No job ever added');
}
if (addJobName !== name) {
throw new Error(`Job name mismatch: ${addJobName} !== ${name}`);
}
return { name, payload };
}
count(name: JobName) {
return this.add.getCalls().filter(call => call.args[0] === name).length;
}
}