Skip to content

Commit

Permalink
10553: Add tests around UserFactory;
Browse files Browse the repository at this point in the history
  • Loading branch information
John Cruz committed Dec 13, 2024
1 parent 1c0ea91 commit d49af18
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 8 deletions.
36 changes: 36 additions & 0 deletions shared/src/business/entities/factories/UserFactory.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import { Practitioner } from '@shared/business/entities/Practitioner';
import { ROLES } from '@shared/business/entities/EntityConstants';
import { User } from '@shared/business/entities/User';
import { UserFactory } from '@shared/business/entities/factories/UserFactory';

describe('UserFactory', () => {
describe('getClass', () => {
it('should return "Practitioner" class type if role is "privatePractitioner"', () => {
const TEST_USER = { role: ROLES.privatePractitioner };
const userFactory = new UserFactory(TEST_USER);
const classInstance = userFactory.getClass();
expect(classInstance).toEqual(Practitioner);
});

it('should return "Practitioner" class type if role is "irsPractitioner"', () => {
const TEST_USER = { role: ROLES.irsPractitioner };
const userFactory = new UserFactory(TEST_USER);
const classInstance = userFactory.getClass();
expect(classInstance).toEqual(Practitioner);
});

it('should return "Practitioner" class type if role is "inactivePractitioner"', () => {
const TEST_USER = { role: ROLES.inactivePractitioner };
const userFactory = new UserFactory(TEST_USER);
const classInstance = userFactory.getClass();
expect(classInstance).toEqual(Practitioner);
});

it('should return "Practitioner" class type if role is "inactivePractitioner"', () => {
const TEST_USER = { role: ROLES.admin };
const userFactory = new UserFactory(TEST_USER);
const classInstance = userFactory.getClass();
expect(classInstance).toEqual(User);
});
});
});
17 changes: 9 additions & 8 deletions shared/src/business/entities/factories/UserFactory.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import {
Practitioner,
RawPractitioner,
} from '@shared/business/entities/Practitioner';
import { ROLES } from '@shared/business/entities/EntityConstants';
import { RawUser, User } from '@shared/business/entities/User';
import { Practitioner } from '@shared/business/entities/Practitioner';
import { ROLES, Role } from '@shared/business/entities/EntityConstants';
import { User } from '@shared/business/entities/User';

type MinimalFactoryInfo = {
role: Role;
};

export class UserFactory {
private rawUser: RawUser | RawPractitioner;
private rawUser: MinimalFactoryInfo;

constructor(rawUser: RawUser | RawPractitioner) {
constructor(rawUser: MinimalFactoryInfo) {
this.rawUser = rawUser;
}

Expand Down

0 comments on commit d49af18

Please sign in to comment.