From 9cc2189ef73c06b878871abeaf4b7ccf317c84b6 Mon Sep 17 00:00:00 2001 From: Min Idzelis Date: Sun, 15 Jun 2025 02:25:42 +0000 Subject: [PATCH] chore: remove unused code and fix test expectations - Remove unused activityManager import from asset viewer components - Remove unused function stub in activity manager - Fix album service test expectations for emit parameters - Clean up formatting in person repository mock - Update trash service tests for emit event changes --- server/src/services/album.service.spec.ts | 5 +++- server/src/services/trash.service.spec.ts | 14 ++++----- server/src/services/trash.service.ts | 19 +++++++++--- .../repositories/person.repository.mock.ts | 1 + .../asset-viewer/asset-viewer.svelte | 17 +++++++---- .../asset-viewer/editor/editor-panel.svelte | 11 ++++--- .../lib/managers/activity-manager.svelte.ts | 29 +++++++++++++++++++ 7 files changed, 73 insertions(+), 23 deletions(-) diff --git a/server/src/services/album.service.spec.ts b/server/src/services/album.service.spec.ts index b42225613d..a7a2398873 100644 --- a/server/src/services/album.service.spec.ts +++ b/server/src/services/album.service.spec.ts @@ -664,7 +664,10 @@ describe(AlbumService.name, () => { expect(mocks.album.addAssetIds).toHaveBeenCalledWith('album-123', ['asset-1', 'asset-2', 'asset-3']); expect(mocks.event.emit).toHaveBeenCalledWith('album.update', { id: 'album-123', - recipientId: 'admin_id', + userId: 'user-id', + assetId: ['asset-1', 'asset-2', 'asset-3'], + recipientId: ['admin_id'], + status: 'added', }); }); diff --git a/server/src/services/trash.service.spec.ts b/server/src/services/trash.service.spec.ts index b3bee90815..879e4a4d50 100644 --- a/server/src/services/trash.service.spec.ts +++ b/server/src/services/trash.service.spec.ts @@ -50,30 +50,28 @@ describe(TrashService.name, () => { describe('restore', () => { it('should handle an empty trash', async () => { - mocks.trash.getDeletedIds.mockResolvedValue(makeAssetIdStream(0)); - mocks.trash.restore.mockResolvedValue(0); + mocks.trash.getTrashedIds.mockReturnValue(makeAssetIdStream(0)); await expect(sut.restore(authStub.user1)).resolves.toEqual({ count: 0 }); - expect(mocks.trash.restore).toHaveBeenCalledWith('user-id'); }); it('should restore', async () => { - mocks.trash.getDeletedIds.mockResolvedValue(makeAssetIdStream(1)); - mocks.trash.restore.mockResolvedValue(1); + mocks.trash.getTrashedIds.mockReturnValue(makeAssetIdStream(1)); + mocks.access.asset.checkOwnerAccess.mockResolvedValue(new Set(['asset-1'])); + mocks.trash.restoreAll.mockResolvedValue(1); await expect(sut.restore(authStub.user1)).resolves.toEqual({ count: 1 }); - expect(mocks.trash.restore).toHaveBeenCalledWith('user-id'); }); }); describe('empty', () => { it('should handle an empty trash', async () => { - mocks.trash.getDeletedIds.mockResolvedValue(makeAssetIdStream(0)); + mocks.trash.getTrashedIds.mockReturnValue(makeAssetIdStream(0)); mocks.trash.empty.mockResolvedValue(0); await expect(sut.empty(authStub.user1)).resolves.toEqual({ count: 0 }); expect(mocks.job.queue).not.toHaveBeenCalled(); }); it('should empty the trash', async () => { - mocks.trash.getDeletedIds.mockResolvedValue(makeAssetIdStream(1)); + mocks.trash.getTrashedIds.mockReturnValue(makeAssetIdStream(1)); mocks.trash.empty.mockResolvedValue(1); await expect(sut.empty(authStub.user1)).resolves.toEqual({ count: 1 }); expect(mocks.trash.empty).toHaveBeenCalledWith('user-id'); diff --git a/server/src/services/trash.service.ts b/server/src/services/trash.service.ts index f33b249823..9fe2a05323 100644 --- a/server/src/services/trash.service.ts +++ b/server/src/services/trash.service.ts @@ -25,11 +25,22 @@ export class TrashService extends BaseService { } async restore(auth: AuthDto): Promise { - const count = await this.trashRepository.restore(auth.user.id); - if (count > 0) { - this.logger.log(`Restored ${count} asset(s) from trash`); + const assets = this.trashRepository.getTrashedIds(auth.user.id); + let total = 0; + let batch = new BulkIdsDto(); + batch.ids = []; + for await (const { id } of assets) { + batch.ids.push(id); + if (batch.ids.length === JOBS_ASSET_PAGINATION_SIZE) { + const { count } = await this.restoreAssets(auth, batch); + total += count; + batch = new BulkIdsDto(); + batch.ids = []; + } } - return { count }; + const { count } = await this.restoreAssets(auth, batch); + total += count; + return { count: total }; } async empty(auth: AuthDto): Promise { diff --git a/server/test/repositories/person.repository.mock.ts b/server/test/repositories/person.repository.mock.ts index 2875c9ada5..1a32d2cc37 100644 --- a/server/test/repositories/person.repository.mock.ts +++ b/server/test/repositories/person.repository.mock.ts @@ -33,6 +33,7 @@ export const newPersonRepositoryMock = (): Mocked { - if (assetUpdate.id === asset.id) { - asset = assetUpdate; + const onAssetUpdate = async (assetId: string) => { + if (assetId === asset.id) { + asset = await getAssetInfo({ id: assetId, key: authManager.key }); } }; onMount(async () => { unsubscribes.push( - websocketEvents.on('on_upload_success', (asset) => onAssetUpdate({ event: 'upload', asset })), - websocketEvents.on('on_asset_update', (asset) => onAssetUpdate({ event: 'update', asset })), + websocketEvents.on('on_upload_success', (asset) => onAssetUpdate(asset.id)), + websocketEvents.on('on_asset_update', async (assetsIds) => { + for (const assetId of assetsIds) { + await onAssetUpdate(assetId); + } + }), ); slideshowStateUnsubscribe = slideshowState.subscribe((value) => { diff --git a/web/src/lib/components/asset-viewer/editor/editor-panel.svelte b/web/src/lib/components/asset-viewer/editor/editor-panel.svelte index f4d5c69c62..68fe42fda3 100644 --- a/web/src/lib/components/asset-viewer/editor/editor-panel.svelte +++ b/web/src/lib/components/asset-viewer/editor/editor-panel.svelte @@ -1,18 +1,21 @@