diff --git a/server/src/infra/repositories/asset.repository.ts b/server/src/infra/repositories/asset.repository.ts index fd5c234756..58bdd81007 100644 --- a/server/src/infra/repositories/asset.repository.ts +++ b/server/src/infra/repositories/asset.repository.ts @@ -149,7 +149,9 @@ export class AssetRepository implements IAssetRepository { owner: true, smartInfo: true, tags: true, - faces: true, + faces: { + person: true, + }, }, }); } diff --git a/server/test/e2e/asset.e2e-spec.ts b/server/test/e2e/asset.e2e-spec.ts index 3a43563dff..7e28cc87b3 100644 --- a/server/test/e2e/asset.e2e-spec.ts +++ b/server/test/e2e/asset.e2e-spec.ts @@ -1,4 +1,4 @@ -import { IAssetRepository, LoginResponseDto } from '@app/domain'; +import { IAssetRepository, IFaceRepository, IPersonRepository, LoginResponseDto } from '@app/domain'; import { AppModule, AssetController } from '@app/immich'; import { AssetEntity, AssetType } from '@app/infra/entities'; import { INestApplication } from '@nestjs/common'; @@ -132,5 +132,32 @@ describe(`${AssetController.name} (e2e)`, () => { }); expect(status).toEqual(200); }); + + it('should return tagged people', async () => { + const personRepository = app.get(IPersonRepository); + const person = await personRepository.create({ ownerId: asset1.ownerId, name: 'Test Person' }); + + const faceRepository = app.get(IFaceRepository); + await faceRepository.create({ assetId: asset1.id, personId: person.id }); + + const { status, body } = await request(server) + .put(`/asset/${asset1.id}`) + .set('Authorization', `Bearer ${user1.accessToken}`) + .send({ isFavorite: true }); + expect(status).toEqual(200); + expect(body).toMatchObject({ + id: asset1.id, + isFavorite: true, + people: [ + { + birthDate: null, + id: expect.any(String), + isHidden: false, + name: 'Test Person', + thumbnailPath: '', + }, + ], + }); + }); }); });