fix(server): do not match live photos across libraries (#11952)

This commit is contained in:
Jason Rasmussen
2024-08-20 21:23:50 -04:00
committed by GitHub
parent fd225e7462
commit 29d229c5ba
4 changed files with 27 additions and 1 deletions

View File

@@ -218,6 +218,29 @@ describe(MetadataService.name, () => {
assetStub.livePhotoMotionAsset.id,
);
});
it('should search by libraryId', async () => {
assetMock.getByIds.mockResolvedValue([
{
...assetStub.livePhotoStillAsset,
libraryId: 'library-id',
exifInfo: { livePhotoCID: 'CID' } as ExifEntity,
},
]);
assetMock.findLivePhotoMatch.mockResolvedValue(null);
await expect(sut.handleLivePhotoLinking({ id: assetStub.livePhotoStillAsset.id })).resolves.toBe(
JobStatus.SKIPPED,
);
expect(assetMock.findLivePhotoMatch).toHaveBeenCalledWith({
ownerId: 'user-id',
otherAssetId: 'live-photo-still-asset',
livePhotoCID: 'CID',
libraryId: 'library-id',
type: 'VIDEO',
});
});
});
describe('handleQueueMetadataExtraction', () => {

View File

@@ -173,6 +173,7 @@ export class MetadataService {
const match = await this.assetRepository.findLivePhotoMatch({
livePhotoCID: asset.exifInfo.livePhotoCID,
ownerId: asset.ownerId,
libraryId: asset.libraryId,
otherAssetId: asset.id,
type: otherType,
});