diff --git a/src/controllers/communityController.js b/src/controllers/communityController.js index 8e7cad87e..723945311 100644 --- a/src/controllers/communityController.js +++ b/src/controllers/communityController.js @@ -41,6 +41,7 @@ const communityMemberController = function () { const { userInfo, frontend, backend, general } = member; return { _id: member._id, + userId: member.user_id, name: userInfo?.name || 'N/A', email: userInfo?.email || 'N/A', slack: userInfo?.slack || '', diff --git a/src/controllers/communityController.test.js b/src/controllers/communityController.test.js new file mode 100644 index 000000000..3cfb6c0ed --- /dev/null +++ b/src/controllers/communityController.test.js @@ -0,0 +1,38 @@ +jest.mock('../models/hgnFormResponse'); + +const FormResponse = require('../models/hgnFormResponse'); +const communityMemberController = require('./communityController'); + +describe('communityController', () => { + it('preserves the response _id and exposes userId from user_id', async () => { + FormResponse.find.mockReturnValue({ + lean: jest.fn().mockReturnThis(), + sort: jest.fn().mockResolvedValue([ + { + _id: 'response-1', + user_id: 'profile-1', + userInfo: { name: 'John', email: 'john@example.com', slack: 'john' }, + general: { location: 'Remote' }, + frontend: { React: '8' }, + backend: { MongoDB: '7' }, + }, + ]), + }); + + const req = { query: {} }; + const res = { json: jest.fn(), status: jest.fn().mockReturnThis() }; + + await communityMemberController().getCommunityMembers(req, res); + + expect(res.json).toHaveBeenCalledWith([ + expect.objectContaining({ + _id: 'response-1', + userId: 'profile-1', + name: 'John', + email: 'john@example.com', + slack: 'john', + team: 'Remote', + }), + ]); + }); +}); diff --git a/src/controllers/hgnFormResponseController.js b/src/controllers/hgnFormResponseController.js index 0838b05b2..8be1b1f0b 100644 --- a/src/controllers/hgnFormResponseController.js +++ b/src/controllers/hgnFormResponseController.js @@ -106,6 +106,7 @@ const hgnFormController = () => { return { _id: user._id, + userId: user.user_id, name: user.userInfo?.name, email: user.userInfo?.email, slack: user.userInfo?.slack, diff --git a/src/controllers/hgnFormResponseController.test.js b/src/controllers/hgnFormResponseController.test.js index 564750433..3e5b1671c 100644 --- a/src/controllers/hgnFormResponseController.test.js +++ b/src/controllers/hgnFormResponseController.test.js @@ -171,6 +171,7 @@ describe('HgnFormResponseController', () => { expect(FormResponse.find).toHaveBeenCalled(); expect(result[0]._id).toBe('2'); // Jane should be ranked higher + expect(result[0].userId).toBe('456'); expect(result[0].topSkills).toEqual(expect.arrayContaining(['React'])); expect(result[1]._id).toBe('1'); }); @@ -207,7 +208,7 @@ describe('HgnFormResponseController', () => { expect(mockRes.json).toHaveBeenCalledWith( expect.arrayContaining([ expect.objectContaining({ _id: '1' }), - expect.objectContaining({ _id: '2' }), + expect.objectContaining({ _id: '2', userId: '456' }), ]), ); });