diff --git a/src/media/media.service.spec.ts b/src/media/media.service.spec.ts index 53e2bd27d..623fb9ab7 100644 --- a/src/media/media.service.spec.ts +++ b/src/media/media.service.spec.ts @@ -263,9 +263,17 @@ describe('MediaService', () => { id: '123', } as Note), } as MediaUpload; + const createQueryBuilder = { + where: () => createQueryBuilder, + getMany: async () => { + return [mockMediaUploadEntry]; + }, + }; jest - .spyOn(mediaRepo, 'find') - .mockResolvedValueOnce([mockMediaUploadEntry]); + .spyOn(mediaRepo, 'createQueryBuilder') + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + .mockImplementation(() => createQueryBuilder); const mediaList = await service.listUploadsByNote({ id: '123', } as Note); @@ -273,14 +281,34 @@ describe('MediaService', () => { }); it('without uploads to note', async () => { - jest.spyOn(mediaRepo, 'find').mockResolvedValueOnce([]); + const createQueryBuilder = { + where: () => createQueryBuilder, + getMany: async () => { + return []; + }, + }; + jest + .spyOn(mediaRepo, 'createQueryBuilder') + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + .mockImplementation(() => createQueryBuilder); const mediaList = await service.listUploadsByNote({ id: '123', } as Note); expect(mediaList).toEqual([]); }); - it('with error (undefined as return value of find)', async () => { - jest.spyOn(mediaRepo, 'find').mockResolvedValueOnce([]); + it('with error (null as return value of find)', async () => { + const createQueryBuilder = { + where: () => createQueryBuilder, + getMany: async () => { + return null; + }, + }; + jest + .spyOn(mediaRepo, 'createQueryBuilder') + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + .mockImplementation(() => createQueryBuilder); const mediaList = await service.listUploadsByNote({ id: '123', } as Note); diff --git a/src/media/media.service.ts b/src/media/media.service.ts index 6f6056dd8..812f2e8af 100644 --- a/src/media/media.service.ts +++ b/src/media/media.service.ts @@ -164,10 +164,10 @@ export class MediaService { * @return {MediaUpload[]} arary of media uploads owned by the user */ async listUploadsByNote(note: Note): Promise { - const mediaUploads = await this.mediaUploadRepository.find({ - where: { note: Equal(note) }, - relations: ['user', 'note'], - }); + const mediaUploads = await this.mediaUploadRepository + .createQueryBuilder('upload') + .where('upload.note = :note', { note: note.id }) + .getMany(); if (mediaUploads === null) { return []; }