Skip to content

Commit d43be3c

Browse files
committed
Remove unused lookup by email
1 parent 5c6640b commit d43be3c

File tree

3 files changed

+6
-101
lines changed

3 files changed

+6
-101
lines changed

src/read-models/members/index.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
1-
// import {getAll} from './get-all';
2-
import {lookupByEmail, lookupByCaseInsensitiveEmail} from './lookup-by-email';
1+
import {lookupByCaseInsensitiveEmail} from './lookup-by-email';
32
import {getFailedImports} from './get-failed-imports';
43

54
export const members = {
6-
lookupByEmail,
75
lookupByCaseInsensitiveEmail,
8-
// getAll,
96
getFailedImports,
107
};
118

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,15 @@
11
import * as RA from 'fp-ts/ReadonlyArray';
2-
import * as O from 'fp-ts/Option';
32
import {DomainEvent, EmailAddress, isEventOfType} from '../../types';
43
import {pipe} from 'fp-ts/lib/function';
54

6-
export const lookupByEmail =
7-
(email: string) =>
8-
(events: ReadonlyArray<DomainEvent>): O.Option<number> =>
9-
pipe(
10-
events,
11-
RA.filter(isEventOfType('MemberNumberLinkedToEmail')),
12-
RA.findFirst(event => event.email === email),
13-
O.map(event => event.memberNumber)
14-
);
15-
165
export const lookupByCaseInsensitiveEmail =
176
(email: string) =>
187
(
198
events: ReadonlyArray<DomainEvent>
209
): ReadonlyArray<{emailAddress: EmailAddress; memberNumber: number}> =>
2110
pipe(
2211
events,
23-
RA.filter(isEventOfType('MemberNumberLinkedToEmail')),
12+
RA.filter(event => isEventOfType('MemberNumberLinkedToEmail')(event) || isEventOfType('MemberEmailChanged')(event)),
2413
RA.filter(event => event.email.toLowerCase() === email.toLowerCase()),
2514
RA.map(({memberNumber, email}) => ({memberNumber, emailAddress: email}))
2615
);

tests/read-models/members/lookup-by-email.test.ts

Lines changed: 4 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,12 @@
11
import * as O from 'fp-ts/Option';
22
import {
3-
lookupByEmail,
43
lookupByCaseInsensitiveEmail,
54
} from '../../../src/read-models/members/lookup-by-email';
65
import {faker} from '@faker-js/faker';
76
import {DomainEvent, EmailAddress} from '../../../src/types';
87
import {TestFramework, initTestFramework} from '../test-framework';
98
import { EditEmail } from '../../../src/commands/members/edit-email';
109

11-
describe('lookupByEmail', () => {
12-
let events: ReadonlyArray<DomainEvent>;
13-
let framework: TestFramework;
14-
beforeEach(async () => {
15-
framework = await initTestFramework();
16-
});
17-
afterEach(() => {
18-
framework.close();
19-
});
20-
21-
describe('when no members exist', () => {
22-
beforeEach(async () => {
23-
events = await framework.getAllEvents();
24-
});
25-
26-
it('returns none', () => {
27-
const result = lookupByEmail(faker.internet.email())(events);
28-
expect(result).toStrictEqual(O.none);
29-
});
30-
});
31-
32-
describe('when a member with the given email exists', () => {
33-
const command = {
34-
memberNumber: faker.number.int(),
35-
email: faker.internet.email() as EmailAddress,
36-
name: undefined,
37-
formOfAddress: undefined,
38-
};
39-
beforeEach(async () => {
40-
await framework.commands.memberNumbers.linkNumberToEmail(command);
41-
events = await framework.getAllEvents();
42-
});
43-
44-
it('returns their member number', () => {
45-
const result = lookupByEmail(command.email)(events);
46-
expect(result).toStrictEqual(O.some(command.memberNumber));
47-
});
48-
49-
describe('when the member has changed their email', () => {
50-
const editEmailCommand: EditEmail = {
51-
memberNumber: command.memberNumber,
52-
email: faker.internet.email() as EmailAddress,
53-
};
54-
55-
beforeEach(async () => {
56-
await framework.commands.members.editEmail(editEmailCommand);
57-
});
58-
59-
it('returns their member number using the new email', () => {
60-
const result = lookupByEmail(editEmailCommand.email)(events);
61-
expect(result).toStrictEqual(O.some(command.memberNumber));
62-
});
63-
64-
it('returns their member number using the old email', () => {
65-
const result = lookupByEmail(command.email)(events);
66-
expect(result).toStrictEqual(O.some(command.memberNumber));
67-
});
68-
69-
});
70-
});
71-
72-
describe('when no member with the given email exists', () => {
73-
const command = {
74-
memberNumber: faker.number.int(),
75-
email: faker.internet.email() as EmailAddress,
76-
name: undefined,
77-
formOfAddress: undefined,
78-
};
79-
beforeEach(async () => {
80-
await framework.commands.memberNumbers.linkNumberToEmail(command);
81-
events = await framework.getAllEvents();
82-
});
83-
84-
it('returns none', () => {
85-
const result = lookupByEmail(faker.internet.email())(events);
86-
expect(result).toStrictEqual(O.none);
87-
});
88-
});
89-
});
90-
9110
describe('lookupByCaseInsensitiveEmail', () => {
9211
let events: ReadonlyArray<DomainEvent>;
9312
let framework: TestFramework;
@@ -150,22 +69,22 @@ describe('lookupByCaseInsensitiveEmail', () => {
15069
});
15170

15271
it('returns their member number using the new email', () => {
153-
const result = lookupByEmail(editEmailCommand.email)(events);
72+
const result = lookupByCaseInsensitiveEmail(editEmailCommand.email)(events);
15473
expect(result).toStrictEqual(O.some(command.memberNumber));
15574
});
15675

15776
it('returns their member number using the old email', () => {
158-
const result = lookupByEmail(command.email)(events);
77+
const result = lookupByCaseInsensitiveEmail(command.email)(events);
15978
expect(result).toStrictEqual(O.some(command.memberNumber));
16079
});
16180

16281
it('returns their member number using the new email even in wrong case', () => {
163-
const result = lookupByEmail(editEmailCommand.email.toUpperCase())(events);
82+
const result = lookupByCaseInsensitiveEmail(editEmailCommand.email.toUpperCase())(events);
16483
expect(result).toStrictEqual(O.some(command.memberNumber));
16584
});
16685

16786
it('returns their member number using the old email even in wrong case', () => {
168-
const result = lookupByEmail(command.email.toUpperCase())(events);
87+
const result = lookupByCaseInsensitiveEmail(command.email.toUpperCase())(events);
16988
expect(result).toStrictEqual(O.some(command.memberNumber));
17089
});
17190
});

0 commit comments

Comments
 (0)