Skip to content

Commit f1fedb7

Browse files
committed
#1448: made it so admins and heads could edit
1 parent 60cb5dc commit f1fedb7

2 files changed

Lines changed: 7 additions & 6 deletions

File tree

src/backend/src/services/reimbursement-requests.services.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -702,13 +702,13 @@ export default class ReimbursementRequestService {
702702
* @returns the updated vendor
703703
*/
704704
static async editVendors(name: string, vendorId: string, submitter: User) {
705-
if (!isAdmin(submitter.role)) throw new AccessDeniedAdminOnlyException('only Admins can edit vendors');
705+
if (!isHead(submitter.role)) throw new AccessDeniedAdminOnlyException('only Admins and Heads can edit vendors');
706706

707-
const vendorExists = await prisma.vendor.findUnique({
707+
const vendorUniqueName = await prisma.vendor.findUnique({
708708
where: { name }
709709
});
710710

711-
if (!!vendorExists) throw new HttpException(400, 'vendor name already exists');
711+
if (!!vendorUniqueName) throw new HttpException(400, 'vendor name already exists');
712712

713713
const vendor = await prisma.vendor.update({
714714
where: { vendorId },

src/backend/tests/reimbursement-requests.test.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -628,13 +628,13 @@ describe('Reimbursement Requests', () => {
628628
});
629629

630630
describe('Edit Vendor Tests', () => {
631-
test('Throws error if user isnt an admin', async () => {
631+
test('Throws error if user isnt an admin or head', async () => {
632632
await expect(
633633
ReimbursementRequestService.editVendors('I Love Benny', GiveMeMyMoney.vendorId, wonderwoman)
634-
).rejects.toThrow(new AccessDeniedAdminOnlyException('only Admins can edit vendors'));
634+
).rejects.toThrow(new AccessDeniedAdminOnlyException('only Admins and Heads can edit vendors'));
635635
});
636636

637-
test('Vendor Name already exists', async () => {
637+
test('Throws error if the vendor name already exists', async () => {
638638
vi.spyOn(prisma.vendor, 'findUnique').mockResolvedValue(PopEyes);
639639
await expect(ReimbursementRequestService.editVendors('CHICKEN', GiveMeMyMoney.vendorId, batman)).rejects.toThrow(
640640
new HttpException(400, 'vendor name already exists')
@@ -648,6 +648,7 @@ describe('Reimbursement Requests', () => {
648648
const vendor = await ReimbursementRequestService.editVendors('kfc', PopEyes.vendorId, batman);
649649

650650
expect(vendor.name).toBe('kfc');
651+
expect(prisma.vendor.update).toBeCalledTimes(1);
651652
});
652653
});
653654
});

0 commit comments

Comments
 (0)