From 1512f320c87c510085b6725479043b363650732a Mon Sep 17 00:00:00 2001 From: Eddi3_As Date: Mon, 10 Mar 2025 19:03:58 -0400 Subject: [PATCH] tests fix --- server/__tests__/image.test.js | 60 +++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 22 deletions(-) diff --git a/server/__tests__/image.test.js b/server/__tests__/image.test.js index 8230b61..1a56431 100644 --- a/server/__tests__/image.test.js +++ b/server/__tests__/image.test.js @@ -73,12 +73,22 @@ describe('Images', () => { let images; let dbConn; let mockImagesCollection; + let mockFindCursor; beforeEach(() => { + + mockFindCursor = { + sort: jest.fn().mockReturnThis(), + skip: jest.fn().mockReturnThis(), + limit: jest.fn().mockReturnThis(), + toArray: jest.fn(), + }; + mockImagesCollection = { insertOne: jest.fn().mockResolvedValue({ insertedId: 'image123' }), findOne: jest.fn(), - find: jest.fn().mockReturnValue({ sort: jest.fn().mockReturnValue([]) }) + find: jest.fn().mockReturnValue(mockFindCursor), + countDocuments: jest.fn() }; dbConn = { @@ -147,35 +157,41 @@ describe('Images', () => { }); }); - describe('getAll', () => { + describe('getImages', () => { it('should retrieve a paginated list of images', async () => { const mockImages = [ - { id: '1', file_name: 'image1.png', file_content: Buffer.from('data1').toString('base64'), mime_type: 'image/png' }, - { id: '2', file_name: 'image2.png', file_content: Buffer.from('data2').toString('base64'), mime_type: 'image/png' } + { _id: '1', userId: 'user1', file_name: 'image1.png', file_content: Buffer.from('data1'), mime_type: 'image/png' }, + { _id: '2', userId: 'user2', file_name: 'image2.png', file_content: Buffer.from('data2'), mime_type: 'image/png' } ]; - mockImagesCollection.find.mockReturnValue({ sort: jest.fn().mockReturnValue(mockImages) }); - - const result = await images.getAll(1, 10); - + + mockImagesCollection.countDocuments.mockResolvedValue(2); + mockFindCursor.toArray.mockResolvedValue(mockImages); + + const result = await images.getImages(1, 10); + expect(db.connect).toHaveBeenCalled(); expect(db.getConnection).toHaveBeenCalled(); expect(dbConn.collection).toHaveBeenCalledWith('images'); expect(mockImagesCollection.find).toHaveBeenCalledWith({}); - expect(result.length).toEqual(mockImages.length); - expect(result).toEqual([ - { id: '1', file_name: 'image1.png', file_content: Buffer.from('data1'), mime_type: 'image/png' }, - { id: '2', file_name: 'image2.png', file_content: Buffer.from('data2'), mime_type: 'image/png' } - ]); + expect(mockFindCursor.sort).toHaveBeenCalledWith({ created_at: 1 }); + expect(mockFindCursor.skip).toHaveBeenCalledWith(0); + expect(mockFindCursor.limit).toHaveBeenCalledWith(10); + expect(result).toEqual({ + images: [ + { id: '1', user: 'user1', file_name: 'image1.png', file_content: 'ZGF0YTE=', mime_type: 'image/png' }, + { id: '2', user: 'user2', file_name: 'image2.png', file_content: 'ZGF0YTI=', mime_type: 'image/png' } + ], + total: 2, + }); }); - - it('should return null if not images is not found', async () => { - mockImagesCollection.find.mockReturnValue({ sort: jest.fn().mockReturnValue(undefined) }); - const result = await images.getAll(1, 10); - expect(db.connect).toHaveBeenCalled(); - expect(db.getConnection).toHaveBeenCalled(); - expect(dbConn.collection).toHaveBeenCalledWith('images'); - expect(mockImagesCollection.find).toHaveBeenCalledWith({}); - expect(result).toEqual(null); + + it('should return an empty array if no images are found', async () => { + mockImagesCollection.countDocuments.mockResolvedValue(0); + mockFindCursor.toArray.mockResolvedValue([]); + + const result = await images.getImages(1, 10); + + expect(result).toEqual({ images: [], total: 0 }); }); }); }); \ No newline at end of file