Skip to content

Commit 3371d46

Browse files
committed
feat(api): add self delete-user account notification email
1 parent 7e83195 commit 3371d46

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { EmailFactory } from '../../../shared/mail/domain/models/EmailFactory.js';
2+
import { mailer } from '../../../shared/mail/infrastructure/services/mailer.js';
3+
4+
export function createSelfDeleteUserAccountEmail({ locale, email, firstName }) {
5+
const factory = new EmailFactory({ app: 'pix-app', locale });
6+
7+
const { i18n, defaultVariables } = factory;
8+
9+
return factory.buildEmail({
10+
template: mailer.selfAccountDeletionTemplateId,
11+
subject: i18n.__('self-account-deletion-email.subject'),
12+
to: email,
13+
variables: {
14+
homeName: defaultVariables.homeName,
15+
homeUrl: defaultVariables.homeUrl,
16+
helpdeskUrl: defaultVariables.helpdeskUrl,
17+
displayNationalLogo: defaultVariables.displayNationalLogo,
18+
doNotAnswer: i18n.__('common.email.m doNotAnswer'),
19+
moreOn: i18n.__('common.email.moreOn'),
20+
pixPresentation: i18n.__('common.email.pixPresentation'),
21+
title: i18n.__('self-account-deletion-email.params.title', { firstName }),
22+
},
23+
});
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { createSelfDeleteUserAccountEmail } from '../../../../../src/identity-access-management/domain/emails/create-self-delete-user-account.email.js';
2+
import { Email } from '../../../../../src/shared/mail/domain/models/Email.js';
3+
import { mailer } from '../../../../../src/shared/mail/infrastructure/services/mailer.js';
4+
import { expect } from '../../../../test-helper.js';
5+
6+
describe('Unit | Identity Access Management | Domain | Email | create-self-delete-user-account', function () {
7+
it('creates self delete user account email with correct parameters', function () {
8+
const emailParams = {
9+
locale: 'fr',
10+
email: 'test@example.com',
11+
firstName: 'John',
12+
token: '12345',
13+
};
14+
15+
const email = createSelfDeleteUserAccountEmail(emailParams);
16+
17+
expect(email).to.be.instanceof(Email);
18+
expect(email).to.have.property('subject').that.is.a('string');
19+
expect(email.to).to.equal(emailParams.email);
20+
expect(email.template).to.equal(mailer.selfAccountDeletionTemplateId);
21+
22+
const variables = email.variables;
23+
expect(variables).to.have.property('displayNationalLogo').that.is.a('boolean');
24+
expect(variables).to.have.property('doNotAnswer').that.is.a('string');
25+
expect(variables).to.have.property('helpdeskUrl').that.is.a('string');
26+
expect(variables).to.have.property('homeName').that.is.a('string');
27+
expect(variables).to.have.property('homeUrl').that.is.a('string');
28+
expect(variables).to.have.property('moreOn').that.is.a('string');
29+
expect(variables).to.have.property('pixPresentation').that.is.a('string');
30+
expect(variables).to.have.property('title').that.is.a('string');
31+
});
32+
});

0 commit comments

Comments
 (0)