Skip to content

Commit d0aa9a0

Browse files
committed
Test for send email verification event not being handled
1 parent 916b327 commit d0aa9a0

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

tests/read-models/shared-state/member-emails.test.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import * as O from 'fp-ts/Option';
22
import {faker} from '@faker-js/faker';
3+
import {advanceTo} from 'jest-date-mock';
34
import {EmailAddress} from '../../../src/types';
45
import {Int} from 'io-ts';
56
import {getSomeOrFail} from '../../helpers';
@@ -127,4 +128,38 @@ describe('member email projection', () => {
127128
const member = getSomeOrFail(framework.sharedReadModel.members.get(memberNumber));
128129
expect(member.primaryEmailAddress).toStrictEqual(secondaryEmail);
129130
});
131+
132+
it('projects when an email verification was last requested', async () => {
133+
const memberNumber = faker.number.int();
134+
const primaryEmail = faker.internet.email() as EmailAddress;
135+
const secondaryEmail = faker.internet.email() as EmailAddress;
136+
const verificationRequestedAt = faker.date.recent();
137+
verificationRequestedAt.setMilliseconds(0);
138+
139+
await framework.commands.memberNumbers.linkNumberToEmail({
140+
memberNumber,
141+
email: primaryEmail,
142+
name: undefined,
143+
formOfAddress: undefined,
144+
});
145+
await framework.commands.members.addEmail({
146+
memberNumber,
147+
email: secondaryEmail,
148+
});
149+
150+
advanceTo(verificationRequestedAt);
151+
await framework.commands.members.sendEmailVerification({
152+
memberNumber,
153+
email: secondaryEmail,
154+
});
155+
156+
const member = getSomeOrFail(framework.sharedReadModel.members.get(memberNumber));
157+
const requestedEmail = member.emails.find(
158+
email => email.emailAddress === secondaryEmail
159+
);
160+
expect(requestedEmail).toBeDefined();
161+
expect(requestedEmail?.verificationLastSent).toStrictEqual(
162+
O.some(verificationRequestedAt)
163+
);
164+
});
130165
});

0 commit comments

Comments
 (0)