From d58feb359fdd1cbd2b128da7dc36fb9ce7bbaafe Mon Sep 17 00:00:00 2001 From: Justin Gasper Date: Tue, 18 Nov 2025 14:07:01 +1100 Subject: [PATCH] Email fix for PS-455 --- src/api/user/user.service.spec.ts | 13 ++++++++----- src/api/user/user.service.ts | 9 +++++---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/api/user/user.service.spec.ts b/src/api/user/user.service.spec.ts index 0890a05..9e576d9 100644 --- a/src/api/user/user.service.spec.ts +++ b/src/api/user/user.service.spec.ts @@ -139,11 +139,13 @@ const mockEventService: jest.Mocked> = { }; const memberUpdateMock = jest.fn(); +const memberUpdateManyMock = jest.fn(); const mockMemberPrisma: any = { // Only the parts used by UserService need to be mocked member: { create: jest.fn(), update: memberUpdateMock, + updateMany: memberUpdateManyMock, }, }; @@ -1565,6 +1567,7 @@ describe('UserService', () => { jest.clearAllMocks(); memberUpdateMock.mockResolvedValue(undefined); + memberUpdateManyMock.mockResolvedValue({ count: 1 }); // Mock checkEmailAvailabilityForUser mockCheckEmail = jest @@ -1656,8 +1659,8 @@ describe('UserService', () => { { userId: 1, handle: 'testuser' }, ); expect(result).toEqual(mockUser); - expect(memberUpdateMock).toHaveBeenCalledWith({ - where: { userId }, + expect(memberUpdateManyMock).toHaveBeenCalledWith({ + where: { userId: BigInt(userId) }, data: { email: newEmail.toLowerCase() }, }); }); @@ -1892,7 +1895,7 @@ describe('UserService', () => { }, ); - memberUpdateMock.mockRejectedValueOnce( + memberUpdateManyMock.mockRejectedValueOnce( new Error('Member update failed'), ); @@ -1903,8 +1906,8 @@ describe('UserService', () => { ); expect(result).toEqual(mockUser); - expect(memberUpdateMock).toHaveBeenCalledWith({ - where: { userId }, + expect(memberUpdateManyMock).toHaveBeenCalledWith({ + where: { userId: BigInt(userId) }, data: { email: newEmail.toLowerCase() }, }); expect(loggerErrorSpy).toHaveBeenCalledWith( diff --git a/src/api/user/user.service.ts b/src/api/user/user.service.ts index 3946a4a..615c655 100644 --- a/src/api/user/user.service.ts +++ b/src/api/user/user.service.ts @@ -1558,17 +1558,18 @@ export class UserService { } if (emailChanged) { + const memberUserId = BigInt(userId); try { - await this.memberPrisma.member.update({ - where: { userId }, + const updateResult = await this.memberPrisma.member.update({ + where: { userId: memberUserId }, data: { email: normalizedEmail }, }); this.logger.log( - `Updated members.member email to ${normalizedEmail} for user ${userId}`, + `Updated members.member email to ${normalizedEmail} for user ${memberUserId}`, ); } catch (error) { this.logger.error( - `Failed to update members.member email for user ${userId}: ${error.message}`, + `Failed to update members.member email for user ${memberUserId}: ${error.message}`, error.stack, ); }