Skip to content

Commit 86ef218

Browse files
committed
Feat: logs and tests for updateUser
1 parent f1031b9 commit 86ef218

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

src/user/user.service.spec.ts

+13-1
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,19 @@ describe('UserService', () => {
296296
);
297297
});
298298

299+
it('when supplied a firebase user dto with an email that already exists, it should return an error', async () => {
300+
const repoSaveSpy = jest.spyOn(repo, 'save');
301+
const authServiceUpdateEmailSpy = jest
302+
.spyOn(mockAuthService, 'updateFirebaseUserEmail')
303+
.mockImplementationOnce(async () => {
304+
throw new Error('Email already exists');
305+
});
306+
307+
await expect(service.updateUser(updateUserDto, mockUserEntity.id)).rejects.toThrow(
308+
'Email already exists',
309+
);
310+
});
311+
299312
it('should not fail update on crisp api call errors', async () => {
300313
const mocked = jest.mocked(updateCrispProfile);
301314
mocked.mockRejectedValue(new Error('Crisp API call failed'));
@@ -305,7 +318,6 @@ describe('UserService', () => {
305318
expect(mocked).toHaveBeenCalled();
306319
expect(user.name).toBe(updateUserDto.name);
307320
expect(user.email).toBe(updateUserDto.email);
308-
309321
mocked.mockReset();
310322
});
311323

src/user/user.service.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { SubscriptionUserService } from 'src/subscription-user/subscription-user
1010
import { TherapySessionService } from 'src/therapy-session/therapy-session.service';
1111
import { SIGNUP_TYPE } from 'src/utils/constants';
1212
import { FIREBASE_ERRORS } from 'src/utils/errors';
13-
import { FIREBASE_EVENTS } from 'src/utils/logs';
13+
import { FIREBASE_EVENTS, USER_SERVICE_EVENTS } from 'src/utils/logs';
1414
import {
1515
createServiceUserProfiles,
1616
updateServiceUserProfilesUser,
@@ -218,6 +218,11 @@ export class UserService {
218218
...updateUserDto,
219219
};
220220
const updatedUser = await this.userRepository.save(newUserData);
221+
this.logger.log({
222+
event: USER_SERVICE_EVENTS.USER_UPDATED,
223+
userId: user.id,
224+
fields: Object.keys(updateUserDto),
225+
});
221226

222227
const isCrispBaseUpdateRequired =
223228
user.signUpLanguage !== updateUserDto.signUpLanguage && user.name !== updateUserDto.name;

src/utils/logs.ts

+4
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,7 @@ export enum FIREBASE_EVENTS {
22
UPDATE_FIREBASE_USER_EMAIL = 'UPDATE_FIREBASE_USER_EMAIL',
33
UPDATE_FIREBASE_EMAIL_ALREADY_UPDATED = 'UPDATE_FIREBASE_EMAIL_ALREADY_UPDATED',
44
}
5+
6+
export enum USER_SERVICE_EVENTS {
7+
USER_UPDATED = 'USER_UPDATED',
8+
}

0 commit comments

Comments
 (0)