Skip to content

Commit 463eda2

Browse files
committed
#1576 Threw an exception when there is an existing phone number in the user database and added 1 test
1 parent c19058e commit 463eda2

2 files changed

Lines changed: 25 additions & 1 deletion

File tree

src/backend/src/services/users.services.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,15 @@ export default class UsersService {
289289
zipcode: string,
290290
phoneNumber: string
291291
): Promise<string> {
292+
293+
const existingUser = await prisma.user_Secure_Settings.findFirst({
294+
where: { phoneNumber }
295+
});
296+
297+
if (existingUser) {
298+
throw new HttpException(400, 'Phone number already in use');
299+
};
300+
292301
const newUserSecureSettings = await prisma.user_Secure_Settings.upsert({
293302
where: { userId: user.userId },
294303
update: {

src/backend/tests/users.test.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
} from './test-data/users.test-data';
1111
import { Role } from '@prisma/client';
1212
import UsersService from '../src/services/users.services';
13-
import { AccessDeniedException, NotFoundException } from '../src/utils/errors.utils';
13+
import { AccessDeniedException, HttpException, NotFoundException } from '../src/utils/errors.utils';
1414
import userTransformer from '../src/transformers/user.transformer';
1515

1616
describe('Users', () => {
@@ -119,5 +119,20 @@ describe('Users', () => {
119119

120120
expect(res).toBe(batmanSecureSettings.userSecureSettingsId);
121121
});
122+
123+
test('setting same phone number does not work', async () => {
124+
vi.spyOn(prisma.user_Secure_Settings, 'findFirst').mockResolvedValue(batmanSecureSettings);
125+
await expect(() =>
126+
UsersService.setUserSecureSettings(
127+
batman,
128+
batmanSecureSettings.nuid,
129+
batmanSecureSettings.street,
130+
batmanSecureSettings.city,
131+
batmanSecureSettings.state,
132+
batmanSecureSettings.zipcode,
133+
batmanSecureSettings.phoneNumber
134+
)
135+
).rejects.toThrow(new HttpException(400, 'Phone number already in use'));
136+
});
122137
});
123138
});

0 commit comments

Comments
 (0)