Skip to content

Commit 3086859

Browse files
Merge pull request #30 from call-0f-code/minor-fixes
Minor fixes
2 parents 43bf031 + 99ba66f commit 3086859

2 files changed

Lines changed: 16 additions & 22 deletions

File tree

src/controllers/member.controller.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,29 +72,31 @@ export const createAMember =
7272
// Update an existing member
7373
export const updateAMember =
7474
(supabase: SupabaseClient) => async (req: Request, res: Response) => {
75-
const { memberId } = req.params;
75+
76+
const { memberId } = req.params;
7677

7778
if(!memberId) throw new ApiError("No memberId provided", 400);
7879

79-
const body = req.body;
80+
const parsedBody = JSON.parse(req.body.memberData);
81+
let imageUrl: undefined | string;
8082

8183
if (req.file) {
8284
const oldData = await memberService.getDetails(memberId);
8385
const oldImage = oldData?.profilePhoto;
8486

8587
if(oldImage) await uploadImage(supabase, req.file, "members", oldImage);
86-
87-
const imageUrl = await uploadImage(supabase, req.file, "members");
88-
body.profilePhoto = imageUrl;
88+
else imageUrl = await uploadImage(supabase, req.file, "members");
8989
}
90+
if (imageUrl) parsedBody.profilePhoto = imageUrl;
9091

91-
await memberService.updateMember(memberId, body);
92+
await memberService.updateMember(memberId, parsedBody);
9293

9394
const updatedData = await memberService.getDetails(memberId);
9495
res
9596
.status(200)
9697
.json({ success: true, user: updatedData });
97-
};
98+
};
99+
98100

99101
// Get all unapproved members
100102
export const getUnapprovedMembers = async (req: Request, res: Response) => {

tests/Member.test.ts

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { createAMember, updateAMember } from '../src/controllers/member.controll
33
import * as memberService from '../src/services/member.service';
44
import { ApiError } from '../src/utils/apiError';
55
import { SupabaseClient } from '@supabase/supabase-js';
6-
import { uploadImage, deleteImage } from '../src/utils/imageUtils';
6+
import { uploadImage } from '../src/utils/imageUtils';
77

88
jest.mock('../src/db/client', () => ({
99
prisma: {
@@ -71,7 +71,7 @@ describe('Member Controller - updateAMember', () => {
7171
it('should update member and return updated data (no image)', async () => {
7272
const req = {
7373
params: { memberId: 'abc-123' },
74-
body: { github: 'https://github.com/shrutii' },
74+
body: { memberData: JSON.stringify({ github: 'https://github.com/shrutii' }) },
7575
file: undefined,
7676
} as unknown as Request;
7777

@@ -106,7 +106,7 @@ describe('Member Controller - updateAMember', () => {
106106
const handler = updateAMember(mockSupabase);
107107
await handler(req, res);
108108

109-
expect(spyUpdate).toHaveBeenCalledWith('abc-123', req.body);
109+
expect(spyUpdate).toHaveBeenCalledWith('abc-123', { github: 'https://github.com/shrutii' });
110110
expect(spyGet).toHaveBeenCalledTimes(1);
111111
expect(res.status).toHaveBeenCalledWith(200);
112112
expect(res.json).toHaveBeenCalledWith({
@@ -118,7 +118,7 @@ describe('Member Controller - updateAMember', () => {
118118
it('should upload new image, handle old image, update member, and return updated data', async () => {
119119
const req = {
120120
params: { memberId: 'abc-123' },
121-
body: {},
121+
body: { memberData: JSON.stringify({}) },
122122
file: { buffer: Buffer.from('fake-image-data') },
123123
} as unknown as Request;
124124

@@ -153,7 +153,6 @@ describe('Member Controller - updateAMember', () => {
153153
};
154154

155155
(uploadImage as jest.Mock)
156-
.mockResolvedValueOnce(undefined)
157156
.mockResolvedValueOnce('https://new.url/image.png');
158157

159158
jest.spyOn(memberService, 'getDetails')
@@ -167,23 +166,16 @@ describe('Member Controller - updateAMember', () => {
167166
const handler = updateAMember(mockSupabase);
168167
await handler(req, res);
169168

170-
expect(uploadImage).toHaveBeenNthCalledWith(
171-
1,
169+
expect(uploadImage).toHaveBeenCalledWith(
172170
mockSupabase,
173171
req.file,
174172
'members',
175173
'https://old.url/image.png'
176174
);
177175

178-
expect(uploadImage).toHaveBeenNthCalledWith(
179-
2,
180-
mockSupabase,
181-
req.file,
182-
'members'
183-
);
184176

185177
expect(spyUpdate).toHaveBeenCalledWith('abc-123', {
186-
profilePhoto: 'https://new.url/image.png',
178+
187179
});
188180

189181
expect(res.status).toHaveBeenCalledWith(200);
@@ -192,4 +184,4 @@ describe('Member Controller - updateAMember', () => {
192184
user: updatedMember,
193185
});
194186
});
195-
});
187+
});

0 commit comments

Comments
 (0)