refactor(server): mail service (#10934)

This commit is contained in:
forehalo
2025-03-19 17:00:19 +00:00
parent b3a245f47a
commit 21c4a29f55
47 changed files with 2076 additions and 2131 deletions
@@ -3,6 +3,7 @@ export * from './team-workspace.mock';
export * from './user.mock';
export * from './workspace.mock';
import { MockMailer } from './mailer.mock';
import { MockTeamWorkspace } from './team-workspace.mock';
import { MockUser } from './user.mock';
import { MockWorkspace } from './workspace.mock';
@@ -12,3 +13,5 @@ export const Mockers = {
Workspace: MockWorkspace,
TeamWorkspace: MockTeamWorkspace,
};
export { MockMailer };
@@ -0,0 +1,29 @@
import Sinon from 'sinon';
import { Mailer } from '../../core/mail';
import { MailName } from '../../mails';
export class MockMailer {
send = Sinon.createStubInstance(Mailer).send.resolves(true);
last<Mail extends MailName>(
name: Mail
): Extract<Jobs['notification.sendMail'], { name: Mail }> {
const last = this.send.lastCall.args[0];
if (!last) {
throw new Error('No mail ever sent');
}
if (last.name !== name) {
throw new Error(`Mail name mismatch: ${last.name} !== ${name}`);
}
return last as any;
}
count(name: MailName) {
return this.send.getCalls().filter(call => call.args[0].name === name)
.length;
}
}