Skip to content

Commit d49af18

Browse files
author
John Cruz
committed
10553: Add tests around UserFactory;
1 parent 1c0ea91 commit d49af18

File tree

2 files changed

+45
-8
lines changed

2 files changed

+45
-8
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { Practitioner } from '@shared/business/entities/Practitioner';
2+
import { ROLES } from '@shared/business/entities/EntityConstants';
3+
import { User } from '@shared/business/entities/User';
4+
import { UserFactory } from '@shared/business/entities/factories/UserFactory';
5+
6+
describe('UserFactory', () => {
7+
describe('getClass', () => {
8+
it('should return "Practitioner" class type if role is "privatePractitioner"', () => {
9+
const TEST_USER = { role: ROLES.privatePractitioner };
10+
const userFactory = new UserFactory(TEST_USER);
11+
const classInstance = userFactory.getClass();
12+
expect(classInstance).toEqual(Practitioner);
13+
});
14+
15+
it('should return "Practitioner" class type if role is "irsPractitioner"', () => {
16+
const TEST_USER = { role: ROLES.irsPractitioner };
17+
const userFactory = new UserFactory(TEST_USER);
18+
const classInstance = userFactory.getClass();
19+
expect(classInstance).toEqual(Practitioner);
20+
});
21+
22+
it('should return "Practitioner" class type if role is "inactivePractitioner"', () => {
23+
const TEST_USER = { role: ROLES.inactivePractitioner };
24+
const userFactory = new UserFactory(TEST_USER);
25+
const classInstance = userFactory.getClass();
26+
expect(classInstance).toEqual(Practitioner);
27+
});
28+
29+
it('should return "Practitioner" class type if role is "inactivePractitioner"', () => {
30+
const TEST_USER = { role: ROLES.admin };
31+
const userFactory = new UserFactory(TEST_USER);
32+
const classInstance = userFactory.getClass();
33+
expect(classInstance).toEqual(User);
34+
});
35+
});
36+
});

shared/src/business/entities/factories/UserFactory.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
1-
import {
2-
Practitioner,
3-
RawPractitioner,
4-
} from '@shared/business/entities/Practitioner';
5-
import { ROLES } from '@shared/business/entities/EntityConstants';
6-
import { RawUser, User } from '@shared/business/entities/User';
1+
import { Practitioner } from '@shared/business/entities/Practitioner';
2+
import { ROLES, Role } from '@shared/business/entities/EntityConstants';
3+
import { User } from '@shared/business/entities/User';
4+
5+
type MinimalFactoryInfo = {
6+
role: Role;
7+
};
78

89
export class UserFactory {
9-
private rawUser: RawUser | RawPractitioner;
10+
private rawUser: MinimalFactoryInfo;
1011

11-
constructor(rawUser: RawUser | RawPractitioner) {
12+
constructor(rawUser: MinimalFactoryInfo) {
1213
this.rawUser = rawUser;
1314
}
1415

0 commit comments

Comments
 (0)