Skip to content

Commit 3b4f8a7

Browse files
authored
fix: create partner access save (#406)
1 parent 2457feb commit 3b4f8a7

File tree

2 files changed

+22
-9
lines changed

2 files changed

+22
-9
lines changed

src/partner-access/partner-access.service.spec.ts

+19-6
Original file line numberDiff line numberDiff line change
@@ -81,23 +81,31 @@ describe('PartnerAccessService', () => {
8181
it('should be defined', () => {
8282
expect(service).toBeDefined();
8383
});
84+
8485
describe('createPartnerAccess', () => {
8586
it('when supplied with correct data should return access code', async () => {
8687
const partnerAccessDto = { ...mockPartnerAccessEntityBase, ...createPartnerAccessDto };
88+
const expectedPartnerAccess = {
89+
...partnerAccessDto,
90+
partnerAdminId,
91+
partnerId,
92+
accessCode: '123456',
93+
};
94+
95+
const partnerAccessRepositorySpy = jest
96+
.spyOn(mockPartnerAccessRepository, 'save')
97+
.mockImplementationOnce(jest.fn().mockResolvedValue(expectedPartnerAccess)) as never;
8798

8899
const { ...newPartnerAccess } = await service.createPartnerAccess(
89100
partnerAccessDto,
90101
partnerId,
91102
partnerAdminId,
92103
);
93-
expect(newPartnerAccess).toStrictEqual({
94-
...partnerAccessDto,
95-
partnerAdminId,
96-
partnerId,
97-
accessCode: '123456',
98-
});
104+
expect(newPartnerAccess).toStrictEqual(expectedPartnerAccess);
99105
expect(newPartnerAccess.accessCode).toHaveLength(6);
106+
expect(partnerAccessRepositorySpy).toHaveBeenCalled();
100107
});
108+
101109
it('tries again when it creates a code that already exists', async () => {
102110
const repoSpyCreateQueryBuilder = jest.spyOn(repo, 'createQueryBuilder');
103111
// Mocks that the accesscode already exists
@@ -116,6 +124,7 @@ describe('PartnerAccessService', () => {
116124
repoSpyCreateQueryBuilder.mockRestore();
117125
});
118126
});
127+
119128
describe('assignPartnerAccess', () => {
120129
it('should update crisp profile and assign partner access', async () => {
121130
const repoSpyCreateQueryBuilder = jest.spyOn(repo, 'createQueryBuilder');
@@ -157,6 +166,7 @@ describe('PartnerAccessService', () => {
157166
});
158167
});
159168
});
169+
160170
describe('assignPartnerAccessOnSignUp', () => {
161171
it('when partnerAccess is supplied, it should create a partner access and assign to user', async () => {
162172
jest.spyOn(repo, 'createQueryBuilder').mockImplementationOnce(
@@ -177,6 +187,7 @@ describe('PartnerAccessService', () => {
177187
expect(partnerAccess.featureTherapy).toBeTruthy();
178188
});
179189
});
190+
180191
describe('createAndAssignPartnerAccess', () => {
181192
it('when partnerId is supplied, it should create a partner access and assign to user', async () => {
182193
const partnerAccess = await service.createAndAssignPartnerAccess(
@@ -192,6 +203,7 @@ describe('PartnerAccessService', () => {
192203
expect(partnerAccess.featureTherapy).toBeFalsy();
193204
});
194205
});
206+
195207
describe('getPartnerAccessCodes', () => {
196208
it('when no filter dto is supplied, it should return all partner accesses', async () => {
197209
const partnerAccesses = await service.getPartnerAccessCodes(undefined);
@@ -244,6 +256,7 @@ describe('PartnerAccessService', () => {
244256
);
245257
});
246258
});
259+
247260
describe('getUserTherapySessions', () => {
248261
it('should return user emails with their total therapy sessions available and an associated access code id', async () => {
249262
const repoSpyCreateQueryBuilder = jest.spyOn(repo, 'createQueryBuilder');

src/partner-access/partner-access.service.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ export class PartnerAccessService {
3737
partnerAdminId: string | null,
3838
): Promise<PartnerAccessEntity> {
3939
const accessCode = await this.generateAccessCode(6);
40-
const partnerAccess = {
40+
const partnerAccess = this.partnerAccessRepository.create({
4141
...createPartnerAccessDto,
4242
partnerAdminId,
4343
partnerId,
4444
accessCode,
45-
};
46-
return await this.partnerAccessRepository.create(partnerAccess);
45+
});
46+
return await this.partnerAccessRepository.save(partnerAccess);
4747
}
4848

4949
private async generateAccessCode(length: number): Promise<string> {

0 commit comments

Comments
 (0)