Skip to content

Commit 30c9569

Browse files
committed
updated tests
1 parent 15d1b5b commit 30c9569

File tree

5 files changed

+197
-94
lines changed

5 files changed

+197
-94
lines changed

Diff for: server/src/services/metadata.service.spec.ts

+38-36
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ describe(MetadataService.name, () => {
247247
it('should handle an asset that could not be found', async () => {
248248
await expect(sut.handleMetadataExtraction({ id: assetStub.image.id })).resolves.toBe(JobStatus.FAILED);
249249

250-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.image.id]);
250+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.image.id], { faces: { person: false } });
251251
expect(assetMock.upsertExif).not.toHaveBeenCalled();
252252
expect(assetMock.update).not.toHaveBeenCalled();
253253
});
@@ -265,7 +265,7 @@ describe(MetadataService.name, () => {
265265
});
266266

267267
await sut.handleMetadataExtraction({ id: assetStub.image.id });
268-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.sidecar.id]);
268+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.sidecar.id], { faces: { person: false } });
269269
expect(assetMock.upsertExif).toHaveBeenCalledWith(expect.objectContaining({ dateTimeOriginal: sidecarDate }));
270270
expect(assetMock.update).toHaveBeenCalledWith({
271271
id: assetStub.image.id,
@@ -280,7 +280,7 @@ describe(MetadataService.name, () => {
280280
metadataMock.readTags.mockResolvedValue({ ISO: [160] });
281281

282282
await sut.handleMetadataExtraction({ id: assetStub.image.id });
283-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.image.id]);
283+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.image.id], { faces: { person: false } });
284284
expect(assetMock.upsertExif).toHaveBeenCalledWith(expect.objectContaining({ iso: 160 }));
285285
expect(assetMock.update).toHaveBeenCalledWith({
286286
id: assetStub.image.id,
@@ -300,7 +300,7 @@ describe(MetadataService.name, () => {
300300
});
301301

302302
await sut.handleMetadataExtraction({ id: assetStub.image.id });
303-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.image.id]);
303+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.image.id], { faces: { person: false } });
304304
expect(assetMock.upsertExif).toHaveBeenCalledWith(
305305
expect.objectContaining({ city: 'City', state: 'State', country: 'Country' }),
306306
);
@@ -320,7 +320,7 @@ describe(MetadataService.name, () => {
320320
});
321321

322322
await sut.handleMetadataExtraction({ id: assetStub.image.id });
323-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.image.id]);
323+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.image.id], { faces: { person: false } });
324324
expect(assetMock.upsertExif).toHaveBeenCalledWith(expect.objectContaining({ latitude: null, longitude: null }));
325325
});
326326

@@ -335,7 +335,7 @@ describe(MetadataService.name, () => {
335335
});
336336

337337
it('should extract hierarchy from TagsList', async () => {
338-
assetMock.getByIds.mockResolvedValue([assetStub.image]);
338+
assetMock.getByIds.mockResolvedValue([assetStub.image], { faces: { person: false } });
339339
metadataMock.readTags.mockResolvedValue({ TagsList: ['Parent/Child'] });
340340
tagMock.upsertValue.mockResolvedValueOnce(tagStub.parent);
341341
tagMock.upsertValue.mockResolvedValueOnce(tagStub.child);
@@ -482,7 +482,9 @@ describe(MetadataService.name, () => {
482482
mediaMock.probe.mockResolvedValue(probeStub.matroskaContainer);
483483

484484
await sut.handleMetadataExtraction({ id: assetStub.livePhotoMotionAsset.id });
485-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.livePhotoMotionAsset.id]);
485+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.livePhotoMotionAsset.id], {
486+
faces: { person: false },
487+
});
486488
expect(storageMock.createOrOverwriteFile).not.toHaveBeenCalled();
487489
expect(jobMock.queue).not.toHaveBeenCalled();
488490
expect(jobMock.queueAll).not.toHaveBeenCalled();
@@ -508,7 +510,7 @@ describe(MetadataService.name, () => {
508510

509511
await sut.handleMetadataExtraction({ id: assetStub.video.id });
510512

511-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.video.id]);
513+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.video.id], { faces: { person: false } });
512514
expect(assetMock.upsertExif).toHaveBeenCalledWith(
513515
expect.objectContaining({ orientation: Orientation.Rotate270CW.toString() }),
514516
);
@@ -536,7 +538,9 @@ describe(MetadataService.name, () => {
536538
assetStub.livePhotoWithOriginalFileName.originalPath,
537539
'MotionPhotoVideo',
538540
);
539-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.livePhotoWithOriginalFileName.id]);
541+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.livePhotoWithOriginalFileName.id], {
542+
faces: { person: false },
543+
});
540544
expect(assetMock.create).toHaveBeenCalledWith({
541545
checksum: expect.any(Buffer),
542546
deviceAssetId: 'NONE',
@@ -579,7 +583,9 @@ describe(MetadataService.name, () => {
579583
assetStub.livePhotoWithOriginalFileName.originalPath,
580584
'EmbeddedVideoFile',
581585
);
582-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.livePhotoWithOriginalFileName.id]);
586+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.livePhotoWithOriginalFileName.id], {
587+
faces: { person: false },
588+
});
583589
expect(assetMock.create).toHaveBeenCalledWith({
584590
checksum: expect.any(Buffer),
585591
deviceAssetId: 'NONE',
@@ -619,7 +625,9 @@ describe(MetadataService.name, () => {
619625
storageMock.readFile.mockResolvedValue(video);
620626

621627
await sut.handleMetadataExtraction({ id: assetStub.livePhotoWithOriginalFileName.id });
622-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.livePhotoWithOriginalFileName.id]);
628+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.livePhotoWithOriginalFileName.id], {
629+
faces: { person: false },
630+
});
623631
expect(storageMock.readFile).toHaveBeenCalledWith(
624632
assetStub.livePhotoWithOriginalFileName.originalPath,
625633
expect.any(Object),
@@ -768,7 +776,7 @@ describe(MetadataService.name, () => {
768776
metadataMock.readTags.mockResolvedValue(tags);
769777

770778
await sut.handleMetadataExtraction({ id: assetStub.image.id });
771-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.image.id]);
779+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.image.id], { faces: { person: false } });
772780
expect(assetMock.upsertExif).toHaveBeenCalledWith({
773781
assetId: assetStub.image.id,
774782
bitsPerSample: expect.any(Number),
@@ -826,7 +834,7 @@ describe(MetadataService.name, () => {
826834
metadataMock.readTags.mockResolvedValue(tags);
827835

828836
await sut.handleMetadataExtraction({ id: assetStub.image.id });
829-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.image.id]);
837+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.image.id], { faces: { person: false } });
830838
expect(assetMock.upsertExif).toHaveBeenCalledWith(
831839
expect.objectContaining({
832840
timeZone: 'UTC+0',
@@ -846,7 +854,7 @@ describe(MetadataService.name, () => {
846854

847855
await sut.handleMetadataExtraction({ id: assetStub.video.id });
848856

849-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.video.id]);
857+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.video.id], { faces: { person: false } });
850858
expect(assetMock.upsertExif).toHaveBeenCalled();
851859
expect(assetMock.update).toHaveBeenCalledWith(
852860
expect.objectContaining({
@@ -867,7 +875,7 @@ describe(MetadataService.name, () => {
867875
});
868876
await sut.handleMetadataExtraction({ id: assetStub.image.id });
869877

870-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.image.id]);
878+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.image.id], { faces: { person: false } });
871879
expect(assetMock.upsertExif).toHaveBeenCalled();
872880
expect(assetMock.update).toHaveBeenCalledWith(
873881
expect.objectContaining({
@@ -889,7 +897,7 @@ describe(MetadataService.name, () => {
889897

890898
await sut.handleMetadataExtraction({ id: assetStub.video.id });
891899

892-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.video.id]);
900+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.video.id], { faces: { person: false } });
893901
expect(assetMock.upsertExif).toHaveBeenCalled();
894902
expect(assetMock.update).toHaveBeenCalledWith(
895903
expect.objectContaining({
@@ -911,7 +919,7 @@ describe(MetadataService.name, () => {
911919

912920
await sut.handleMetadataExtraction({ id: assetStub.video.id });
913921

914-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.video.id]);
922+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.video.id], { faces: { person: false } });
915923
expect(assetMock.upsertExif).toHaveBeenCalled();
916924
expect(assetMock.update).toHaveBeenCalledWith(
917925
expect.objectContaining({
@@ -975,11 +983,10 @@ describe(MetadataService.name, () => {
975983
metadataMock.readTags.mockResolvedValue(metadataStub.withFaceNoName);
976984
personMock.getDistinctNames.mockResolvedValue([]);
977985
personMock.createAll.mockResolvedValue([]);
978-
personMock.refreshFaces.mockResolvedValue([]);
979986
await sut.handleMetadataExtraction({ id: assetStub.image.id });
980-
expect(personMock.createAll).toHaveBeenCalledWith([]);
981-
expect(personMock.refreshFaces).toHaveBeenCalledWith(assetStub.primaryImage.id, [], SourceType.EXIF);
982-
expect(personMock.updateAll).toHaveBeenCalledWith([]);
987+
expect(personMock.createAll).not.toHaveBeenCalled();
988+
expect(personMock.refreshFaces).not.toHaveBeenCalled();
989+
expect(personMock.updateAll).not.toHaveBeenCalled();
983990
});
984991

985992
it('should skip importing faces with empty name', async () => {
@@ -988,11 +995,10 @@ describe(MetadataService.name, () => {
988995
metadataMock.readTags.mockResolvedValue(metadataStub.withFaceEmptyName);
989996
personMock.getDistinctNames.mockResolvedValue([]);
990997
personMock.createAll.mockResolvedValue([]);
991-
personMock.refreshFaces.mockResolvedValue([]);
992998
await sut.handleMetadataExtraction({ id: assetStub.image.id });
993-
expect(personMock.createAll).toHaveBeenCalledWith([]);
994-
expect(personMock.refreshFaces).toHaveBeenCalledWith(assetStub.primaryImage.id, [], SourceType.EXIF);
995-
expect(personMock.updateAll).toHaveBeenCalledWith([]);
999+
expect(personMock.createAll).not.toHaveBeenCalled();
1000+
expect(personMock.refreshFaces).not.toHaveBeenCalled();
1001+
expect(personMock.updateAll).not.toHaveBeenCalled();
9961002
});
9971003

9981004
it('should apply metadata face tags creating new persons', async () => {
@@ -1001,14 +1007,12 @@ describe(MetadataService.name, () => {
10011007
metadataMock.readTags.mockResolvedValue(metadataStub.withFace);
10021008
personMock.getDistinctNames.mockResolvedValue([]);
10031009
personMock.createAll.mockResolvedValue([personStub.withName.id]);
1004-
personMock.refreshFaces.mockResolvedValue(['face-asset-uuid']);
10051010
personMock.update.mockResolvedValue(personStub.withName);
10061011
await sut.handleMetadataExtraction({ id: assetStub.primaryImage.id });
1007-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.primaryImage.id]);
1012+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.primaryImage.id], { faces: { person: false } });
10081013
expect(personMock.getDistinctNames).toHaveBeenCalledWith(assetStub.primaryImage.ownerId, { withHidden: true });
10091014
expect(personMock.createAll).toHaveBeenCalledWith([expect.objectContaining({ name: personStub.withName.name })]);
10101015
expect(personMock.refreshFaces).toHaveBeenCalledWith(
1011-
assetStub.primaryImage.id,
10121016
[
10131017
{
10141018
id: 'random-uuid',
@@ -1023,7 +1027,7 @@ describe(MetadataService.name, () => {
10231027
sourceType: SourceType.EXIF,
10241028
},
10251029
],
1026-
SourceType.EXIF,
1030+
[],
10271031
);
10281032
expect(personMock.updateAll).toHaveBeenCalledWith([{ id: 'random-uuid', faceAssetId: 'random-uuid' }]);
10291033
expect(jobMock.queueAll).toHaveBeenCalledWith([
@@ -1040,14 +1044,12 @@ describe(MetadataService.name, () => {
10401044
metadataMock.readTags.mockResolvedValue(metadataStub.withFace);
10411045
personMock.getDistinctNames.mockResolvedValue([{ id: personStub.withName.id, name: personStub.withName.name }]);
10421046
personMock.createAll.mockResolvedValue([]);
1043-
personMock.refreshFaces.mockResolvedValue(['face-asset-uuid']);
10441047
personMock.update.mockResolvedValue(personStub.withName);
10451048
await sut.handleMetadataExtraction({ id: assetStub.primaryImage.id });
1046-
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.primaryImage.id]);
1049+
expect(assetMock.getByIds).toHaveBeenCalledWith([assetStub.primaryImage.id], { faces: { person: false } });
10471050
expect(personMock.getDistinctNames).toHaveBeenCalledWith(assetStub.primaryImage.ownerId, { withHidden: true });
1048-
expect(personMock.createAll).toHaveBeenCalledWith([]);
1051+
expect(personMock.createAll).not.toHaveBeenCalled();
10491052
expect(personMock.refreshFaces).toHaveBeenCalledWith(
1050-
assetStub.primaryImage.id,
10511053
[
10521054
{
10531055
id: 'random-uuid',
@@ -1062,10 +1064,10 @@ describe(MetadataService.name, () => {
10621064
sourceType: SourceType.EXIF,
10631065
},
10641066
],
1065-
SourceType.EXIF,
1067+
[],
10661068
);
1067-
expect(personMock.updateAll).toHaveBeenCalledWith([]);
1068-
expect(jobMock.queueAll).toHaveBeenCalledWith([]);
1069+
expect(personMock.updateAll).not.toHaveBeenCalled();
1070+
expect(jobMock.queueAll).not.toHaveBeenCalledWith();
10691071
});
10701072

10711073
it('should handle invalid modify date', async () => {

0 commit comments

Comments
 (0)