From 930df46f74c0c9f543c919fa4a641d9c29f94db1 Mon Sep 17 00:00:00 2001 From: Jason Rasmussen Date: Fri, 11 Oct 2024 00:44:38 -0400 Subject: [PATCH] chore(server): remove unused code (#13367) --- server/src/cores/storage.core.ts | 7 -- server/src/interfaces/asset.interface.ts | 6 -- server/src/interfaces/database.interface.ts | 1 - server/src/interfaces/map.interface.ts | 1 - server/src/interfaces/person.interface.ts | 2 - server/src/repositories/asset.repository.ts | 33 ------- .../src/repositories/database.repository.ts | 4 - server/src/repositories/map.repository.ts | 14 --- server/src/repositories/person.repository.ts | 9 -- server/src/services/auth.service.spec.ts | 36 ++++++-- server/src/services/library.service.spec.ts | 4 - server/src/services/person.service.spec.ts | 6 -- server/test/fixtures/album.stub.ts | 51 ---------- server/test/fixtures/api-key.stub.ts | 4 - server/test/fixtures/asset.stub.ts | 92 ++----------------- server/test/fixtures/audit.stub.ts | 16 ---- server/test/fixtures/auth.stub.ts | 57 ------------ server/test/fixtures/face.stub.ts | 15 --- server/test/fixtures/library.stub.ts | 17 +--- server/test/fixtures/person.stub.ts | 14 --- server/test/fixtures/shared-link.stub.ts | 15 --- server/test/fixtures/user.stub.ts | 40 -------- .../repositories/asset.repository.mock.ts | 1 - .../repositories/database.repository.mock.ts | 1 - .../test/repositories/map.repository.mock.ts | 1 - .../repositories/person.repository.mock.ts | 2 - 26 files changed, 34 insertions(+), 415 deletions(-) diff --git a/server/src/cores/storage.core.ts b/server/src/cores/storage.core.ts index 8e42cd1076..c49175172d 100644 --- a/server/src/cores/storage.core.ts +++ b/server/src/cores/storage.core.ts @@ -15,9 +15,6 @@ import { ISystemMetadataRepository } from 'src/interfaces/system-metadata.interf import { getAssetFiles } from 'src/utils/asset.util'; import { getConfig } from 'src/utils/config'; -export const THUMBNAIL_DIR = resolve(join(APP_MEDIA_LOCATION, StorageFolder.THUMBNAILS)); -export const ENCODED_VIDEO_DIR = resolve(join(APP_MEDIA_LOCATION, StorageFolder.ENCODED_VIDEO)); - export interface MoveRequest { entityId: string; pathType: PathType; @@ -118,10 +115,6 @@ export class StorageCore { return normalizedPath.startsWith(normalizedAppMediaLocation); } - static isGeneratedAsset(path: string) { - return path.startsWith(THUMBNAIL_DIR) || path.startsWith(ENCODED_VIDEO_DIR); - } - async moveAssetImage(asset: AssetEntity, pathType: GeneratedImageType, format: ImageFormat) { const { id: entityId, files } = asset; const { thumbnailFile, previewFile } = getAssetFiles(files); diff --git a/server/src/interfaces/asset.interface.ts b/server/src/interfaces/asset.interface.ts index 750a852094..37d3326a8a 100644 --- a/server/src/interfaces/asset.interface.ts +++ b/server/src/interfaces/asset.interface.ts @@ -172,12 +172,6 @@ export interface IAssetRepository { order?: FindOptionsOrder, ): Promise; getWithout(pagination: PaginationOptions, property: WithoutProperty): Paginated; - getWith( - pagination: PaginationOptions, - property: WithProperty, - libraryId?: string, - withDeleted?: boolean, - ): Paginated; getRandom(userIds: string[], count: number): Promise; getLastUpdatedAssetForAlbumId(albumId: string): Promise; getByLibraryIdAndOriginalPath(libraryId: string, originalPath: string): Promise; diff --git a/server/src/interfaces/database.interface.ts b/server/src/interfaces/database.interface.ts index e388f354f2..79550d416e 100644 --- a/server/src/interfaces/database.interface.ts +++ b/server/src/interfaces/database.interface.ts @@ -48,7 +48,6 @@ export interface IDatabaseRepository { getPostgresVersion(): Promise; getPostgresVersionRange(): string; createExtension(extension: DatabaseExtension): Promise; - updateExtension(extension: DatabaseExtension, version?: string): Promise; updateVectorExtension(extension: VectorExtension, version?: string): Promise; reindex(index: VectorIndex): Promise; shouldReindex(name: VectorIndex): Promise; diff --git a/server/src/interfaces/map.interface.ts b/server/src/interfaces/map.interface.ts index 80b37c3a5f..0a04840a96 100644 --- a/server/src/interfaces/map.interface.ts +++ b/server/src/interfaces/map.interface.ts @@ -28,5 +28,4 @@ export interface IMapRepository { init(): Promise; reverseGeocode(point: GeoPoint): Promise; getMapMarkers(ownerIds: string[], albumIds: string[], options?: MapMarkerSearchOptions): Promise; - fetchStyle(url: string): Promise; } diff --git a/server/src/interfaces/person.interface.ts b/server/src/interfaces/person.interface.ts index 57e46a439b..b3e2c0990e 100644 --- a/server/src/interfaces/person.interface.ts +++ b/server/src/interfaces/person.interface.ts @@ -57,9 +57,7 @@ export interface IPersonRepository { create(person: Partial): Promise; createAll(people: Partial[]): Promise; - createFaces(entities: Partial[]): Promise; delete(entities: PersonEntity[]): Promise; - deleteAll(): Promise; deleteFaces(options: DeleteFacesOptions): Promise; refreshFaces( facesToAdd: Partial[], diff --git a/server/src/repositories/asset.repository.ts b/server/src/repositories/asset.repository.ts index 8bca755c32..fd47a976a5 100644 --- a/server/src/repositories/asset.repository.ts +++ b/server/src/repositories/asset.repository.ts @@ -499,39 +499,6 @@ export class AssetRepository implements IAssetRepository { }); } - getWith( - pagination: PaginationOptions, - property: WithProperty, - libraryId?: string, - withDeleted = false, - ): Paginated { - let where: FindOptionsWhere | FindOptionsWhere[] = {}; - - switch (property) { - case WithProperty.SIDECAR: { - where = [{ sidecarPath: Not(IsNull()), isVisible: true }]; - break; - } - - default: { - throw new Error(`Invalid getWith property: ${property}`); - } - } - - if (libraryId) { - where = [{ ...where, libraryId }]; - } - - return paginate(this.repository, pagination, { - where, - withDeleted, - order: { - // Ensures correct order when paginating - createdAt: 'ASC', - }, - }); - } - getLastUpdatedAssetForAlbumId(albumId: string): Promise { return this.repository.findOne({ where: { albums: { id: albumId } }, diff --git a/server/src/repositories/database.repository.ts b/server/src/repositories/database.repository.ts index 76998b5239..547f03fc20 100644 --- a/server/src/repositories/database.repository.ts +++ b/server/src/repositories/database.repository.ts @@ -74,10 +74,6 @@ export class DatabaseRepository implements IDatabaseRepository { await this.dataSource.query(`CREATE EXTENSION IF NOT EXISTS ${extension}`); } - async updateExtension(extension: DatabaseExtension, version?: string): Promise { - await this.dataSource.query(`ALTER EXTENSION ${extension} UPDATE${version ? ` TO '${version}'` : ''}`); - } - async updateVectorExtension(extension: VectorExtension, targetVersion?: string): Promise { const { availableVersion, installedVersion } = await this.getExtensionVersion(extension); if (!installedVersion) { diff --git a/server/src/repositories/map.repository.ts b/server/src/repositories/map.repository.ts index 8ba9b4cab8..3e5c499f41 100644 --- a/server/src/repositories/map.repository.ts +++ b/server/src/repositories/map.repository.ts @@ -113,20 +113,6 @@ export class MapRepository implements IMapRepository { })); } - async fetchStyle(url: string) { - try { - const response = await fetch(url); - - if (!response.ok) { - throw new Error(`Failed to fetch data from ${url} with status ${response.status}: ${await response.text()}`); - } - - return response.json(); - } catch (error) { - throw new Error(`Failed to fetch data from ${url}: ${error}`); - } - } - async reverseGeocode(point: GeoPoint): Promise { this.logger.debug(`Request: ${point.latitude},${point.longitude}`); diff --git a/server/src/repositories/person.repository.ts b/server/src/repositories/person.repository.ts index 3ba9e23887..c62c4b8739 100644 --- a/server/src/repositories/person.repository.ts +++ b/server/src/repositories/person.repository.ts @@ -63,10 +63,6 @@ export class PersonRepository implements IPersonRepository { await this.personRepository.remove(entities); } - async deleteAll(): Promise { - await this.personRepository.clear(); - } - async deleteFaces({ sourceType }: DeleteFacesOptions): Promise { await this.assetFaceRepository .createQueryBuilder('asset_faces') @@ -269,11 +265,6 @@ export class PersonRepository implements IPersonRepository { return results.map((person) => person.id); } - async createFaces(entities: AssetFaceEntity[]): Promise { - const res = await this.assetFaceRepository.save(entities); - return res.map((row) => row.id); - } - async refreshFaces( facesToAdd: Partial[], faceIdsToRemove: string[], diff --git a/server/src/services/auth.service.spec.ts b/server/src/services/auth.service.spec.ts index f45affe042..3701d3de56 100644 --- a/server/src/services/auth.service.spec.ts +++ b/server/src/services/auth.service.spec.ts @@ -13,7 +13,7 @@ import { ISystemMetadataRepository } from 'src/interfaces/system-metadata.interf import { IUserRepository } from 'src/interfaces/user.interface'; import { AuthService } from 'src/services/auth.service'; import { keyStub } from 'test/fixtures/api-key.stub'; -import { authStub, loginResponseStub } from 'test/fixtures/auth.stub'; +import { authStub } from 'test/fixtures/auth.stub'; import { sessionStub } from 'test/fixtures/session.stub'; import { sharedLinkStub } from 'test/fixtures/shared-link.stub'; import { systemConfigStub } from 'test/fixtures/system-config.stub'; @@ -21,6 +21,16 @@ import { userStub } from 'test/fixtures/user.stub'; import { newTestService } from 'test/utils'; import { Mocked } from 'vitest'; +const oauthResponse = { + accessToken: 'cmFuZG9tLWJ5dGVz', + userId: 'user-id', + userEmail: 'immich@test.com', + name: 'immich_name', + profileImagePath: '', + isAdmin: false, + shouldChangePassword: false, +}; + // const token = Buffer.from('my-api-key', 'utf8').toString('base64'); const email = 'test@immich.com'; @@ -100,7 +110,15 @@ describe('AuthService', () => { it('should successfully log the user in', async () => { userMock.getByEmail.mockResolvedValue(userStub.user1); sessionMock.create.mockResolvedValue(sessionStub.valid); - await expect(sut.login(fixtures.login, loginDetails)).resolves.toEqual(loginResponseStub.user1password); + await expect(sut.login(fixtures.login, loginDetails)).resolves.toEqual({ + accessToken: 'cmFuZG9tLWJ5dGVz', + userId: 'user-id', + userEmail: 'immich@test.com', + name: 'immich_name', + profileImagePath: '', + isAdmin: false, + shouldChangePassword: false, + }); expect(userMock.getByEmail).toHaveBeenCalledTimes(1); }); }); @@ -469,7 +487,7 @@ describe('AuthService', () => { sessionMock.create.mockResolvedValue(sessionStub.valid); await expect(sut.callback({ url: 'http://immich/auth/login?code=abc123' }, loginDetails)).resolves.toEqual( - loginResponseStub.user1oauth, + oauthResponse, ); expect(userMock.getByEmail).toHaveBeenCalledTimes(1); @@ -498,7 +516,7 @@ describe('AuthService', () => { sessionMock.create.mockResolvedValue(sessionStub.valid); await expect(sut.callback({ url: 'http://immich/auth/login?code=abc123' }, loginDetails)).resolves.toEqual( - loginResponseStub.user1oauth, + oauthResponse, ); expect(userMock.getByEmail).toHaveBeenCalledTimes(2); // second call is for domain check before create @@ -546,7 +564,7 @@ describe('AuthService', () => { userMock.create.mockResolvedValue(userStub.user1); await expect(sut.callback({ url: 'http://immich/auth/login?code=abc123' }, loginDetails)).resolves.toEqual( - loginResponseStub.user1oauth, + oauthResponse, ); expect(userMock.create).toHaveBeenCalledWith(oauthUserWithDefaultQuota); @@ -560,7 +578,7 @@ describe('AuthService', () => { oauthMock.getProfile.mockResolvedValue({ sub, email, immich_quota: 'abc' }); await expect(sut.callback({ url: 'http://immich/auth/login?code=abc123' }, loginDetails)).resolves.toEqual( - loginResponseStub.user1oauth, + oauthResponse, ); expect(userMock.create).toHaveBeenCalledWith(oauthUserWithDefaultQuota); @@ -574,7 +592,7 @@ describe('AuthService', () => { oauthMock.getProfile.mockResolvedValue({ sub, email, immich_quota: -5 }); await expect(sut.callback({ url: 'http://immich/auth/login?code=abc123' }, loginDetails)).resolves.toEqual( - loginResponseStub.user1oauth, + oauthResponse, ); expect(userMock.create).toHaveBeenCalledWith(oauthUserWithDefaultQuota); @@ -588,7 +606,7 @@ describe('AuthService', () => { oauthMock.getProfile.mockResolvedValue({ sub, email, immich_quota: 0 }); await expect(sut.callback({ url: 'http://immich/auth/login?code=abc123' }, loginDetails)).resolves.toEqual( - loginResponseStub.user1oauth, + oauthResponse, ); expect(userMock.create).toHaveBeenCalledWith({ @@ -608,7 +626,7 @@ describe('AuthService', () => { oauthMock.getProfile.mockResolvedValue({ sub, email, immich_quota: 5 }); await expect(sut.callback({ url: 'http://immich/auth/login?code=abc123' }, loginDetails)).resolves.toEqual( - loginResponseStub.user1oauth, + oauthResponse, ); expect(userMock.create).toHaveBeenCalledWith({ diff --git a/server/src/services/library.service.spec.ts b/server/src/services/library.service.spec.ts index e8e276a0e2..7993c7dacc 100644 --- a/server/src/services/library.service.spec.ts +++ b/server/src/services/library.service.spec.ts @@ -141,8 +141,6 @@ describe(LibraryService.name, () => { describe('handleQueueAssetRefresh', () => { it('should queue refresh of a new asset', async () => { - assetMock.getWith.mockResolvedValue({ items: [], hasNextPage: false }); - libraryMock.get.mockResolvedValue(libraryStub.externalLibrary1); storageMock.walk.mockImplementation(mockWalk); @@ -179,8 +177,6 @@ describe(LibraryService.name, () => { storageMock.checkFileExists.mockResolvedValue(true); - assetMock.getWith.mockResolvedValue({ items: [], hasNextPage: false }); - libraryMock.get.mockResolvedValue(libraryStub.externalLibraryWithImportPaths1); await sut.handleQueueSyncFiles({ id: libraryStub.externalLibraryWithImportPaths1.id }); diff --git a/server/src/services/person.service.spec.ts b/server/src/services/person.service.spec.ts index d3d0b457c7..da4656be02 100644 --- a/server/src/services/person.service.spec.ts +++ b/server/src/services/person.service.spec.ts @@ -721,7 +721,6 @@ describe(PersonService.name, () => { '/uploads/user-id/thumbs/path.jpg', expect.objectContaining({ minScore: 0.7, modelName: 'buffalo_l' }), ); - expect(personMock.createFaces).not.toHaveBeenCalled(); expect(jobMock.queue).not.toHaveBeenCalled(); expect(jobMock.queueAll).not.toHaveBeenCalled(); @@ -733,7 +732,6 @@ describe(PersonService.name, () => { }); it('should create a face with no person and queue recognition job', async () => { - personMock.createFaces.mockResolvedValue([faceStub.face1.id]); machineLearningMock.detectFaces.mockResolvedValue(detectFaceMock); assetMock.getByIds.mockResolvedValue([assetStub.image]); @@ -761,7 +759,6 @@ describe(PersonService.name, () => { }); it('should add new face and delete an existing face not among the new detected faces', async () => { - personMock.createFaces.mockResolvedValue([faceStub.face1.id]); machineLearningMock.detectFaces.mockResolvedValue(detectFaceMock); assetMock.getByIds.mockResolvedValue([{ ...assetStub.image, faces: [faceStub.primaryFace1] }]); @@ -816,7 +813,6 @@ describe(PersonService.name, () => { expect(personMock.reassignFaces).not.toHaveBeenCalled(); expect(personMock.create).not.toHaveBeenCalled(); - expect(personMock.createFaces).not.toHaveBeenCalled(); }); it('should fail if face does not have asset', async () => { @@ -827,7 +823,6 @@ describe(PersonService.name, () => { expect(personMock.reassignFaces).not.toHaveBeenCalled(); expect(personMock.create).not.toHaveBeenCalled(); - expect(personMock.createFaces).not.toHaveBeenCalled(); }); it('should skip if face already has an assigned person', async () => { @@ -837,7 +832,6 @@ describe(PersonService.name, () => { expect(personMock.reassignFaces).not.toHaveBeenCalled(); expect(personMock.create).not.toHaveBeenCalled(); - expect(personMock.createFaces).not.toHaveBeenCalled(); }); it('should match existing person', async () => { diff --git a/server/test/fixtures/album.stub.ts b/server/test/fixtures/album.stub.ts index c2c59a8007..3d2899d3c6 100644 --- a/server/test/fixtures/album.stub.ts +++ b/server/test/fixtures/album.stub.ts @@ -155,55 +155,4 @@ export const albumStub = { isActivityEnabled: true, order: AssetOrder.DESC, }), - emptyWithInvalidThumbnail: Object.freeze({ - id: 'album-5', - albumName: 'Empty album with invalid thumbnail', - description: '', - ownerId: authStub.admin.user.id, - owner: userStub.admin, - assets: [], - albumThumbnailAsset: null, - albumThumbnailAssetId: null, - createdAt: new Date(), - updatedAt: new Date(), - deletedAt: null, - sharedLinks: [], - albumUsers: [], - isActivityEnabled: true, - order: AssetOrder.DESC, - }), - oneAssetInvalidThumbnail: Object.freeze({ - id: 'album-6', - albumName: 'Album with one asset and invalid thumbnail', - description: '', - ownerId: authStub.admin.user.id, - owner: userStub.admin, - assets: [assetStub.image], - albumThumbnailAsset: assetStub.livePhotoMotionAsset, - albumThumbnailAssetId: assetStub.livePhotoMotionAsset.id, - createdAt: new Date(), - updatedAt: new Date(), - deletedAt: null, - sharedLinks: [], - albumUsers: [], - isActivityEnabled: true, - order: AssetOrder.DESC, - }), - oneAssetValidThumbnail: Object.freeze({ - id: 'album-6', - albumName: 'Album with one asset and invalid thumbnail', - description: '', - ownerId: authStub.admin.user.id, - owner: userStub.admin, - assets: [assetStub.image], - albumThumbnailAsset: assetStub.image, - albumThumbnailAssetId: assetStub.image.id, - createdAt: new Date(), - updatedAt: new Date(), - deletedAt: null, - sharedLinks: [], - albumUsers: [], - isActivityEnabled: true, - order: AssetOrder.DESC, - }), }; diff --git a/server/test/fixtures/api-key.stub.ts b/server/test/fixtures/api-key.stub.ts index 954c8f35a0..f8b1832c84 100644 --- a/server/test/fixtures/api-key.stub.ts +++ b/server/test/fixtures/api-key.stub.ts @@ -11,7 +11,3 @@ export const keyStub = { user: userStub.admin, } as APIKeyEntity), }; - -export const apiKeyCreateStub = { - name: 'API Key', -}; diff --git a/server/test/fixtures/asset.stub.ts b/server/test/fixtures/asset.stub.ts index 119c0b6e5a..45390cf92e 100644 --- a/server/test/fixtures/asset.stub.ts +++ b/server/test/fixtures/asset.stub.ts @@ -523,37 +523,6 @@ export const assetStub = { }, } as AssetEntity), - liveMotionWithThumb: Object.freeze({ - id: fileStub.livePhotoMotion.uuid, - status: AssetStatus.ACTIVE, - originalPath: fileStub.livePhotoMotion.originalPath, - ownerId: authStub.user1.user.id, - type: AssetType.VIDEO, - isVisible: false, - fileModifiedAt: new Date('2022-06-19T23:41:36.910Z'), - fileCreatedAt: new Date('2022-06-19T23:41:36.910Z'), - files: [ - { - assetId: 'asset-id', - type: AssetFileType.PREVIEW, - path: '/uploads/user-id/thumbs/path.ext', - createdAt: new Date('2023-02-23T05:06:29.716Z'), - updatedAt: new Date('2023-02-23T05:06:29.716Z'), - }, - { - assetId: 'asset-id', - type: AssetFileType.THUMBNAIL, - path: '/uploads/user-id/webp/path.ext', - createdAt: new Date('2023-02-23T05:06:29.716Z'), - updatedAt: new Date('2023-02-23T05:06:29.716Z'), - }, - ], - exifInfo: { - fileSizeInByte: 100_000, - timeZone: `America/New_York`, - }, - } as AssetEntity), - livePhotoStillAsset: Object.freeze({ id: 'live-photo-still-asset', status: AssetStatus.ACTIVE, @@ -570,22 +539,6 @@ export const assetStub = { }, } as AssetEntity), - livePhotoStillAssetWithTheSameLivePhotoMotionAsset: Object.freeze({ - id: 'live-photo-still-asset-1', - status: AssetStatus.ACTIVE, - originalPath: fileStub.livePhotoStill.originalPath, - ownerId: authStub.user1.user.id, - type: AssetType.IMAGE, - livePhotoVideoId: 'live-photo-motion-asset', - isVisible: true, - fileModifiedAt: new Date('2022-06-19T23:41:36.910Z'), - fileCreatedAt: new Date('2022-06-19T23:41:36.910Z'), - exifInfo: { - fileSizeInByte: 25_000, - timeZone: `America/New_York`, - }, - } as AssetEntity), - livePhotoWithOriginalFileName: Object.freeze({ id: 'live-photo-still-asset', status: AssetStatus.ACTIVE, @@ -645,6 +598,7 @@ export const assetStub = { duplicateId: null, isOffline: false, }), + sidecar: Object.freeze({ id: 'asset-id', status: AssetStatus.ACTIVE, @@ -679,6 +633,7 @@ export const assetStub = { duplicateId: null, isOffline: false, }), + sidecarWithoutExt: Object.freeze({ id: 'asset-id', status: AssetStatus.ACTIVE, @@ -751,45 +706,7 @@ export const assetStub = { duplicateId: null, isOffline: false, }), - missingFileExtension: Object.freeze({ - id: 'asset-id', - status: AssetStatus.ACTIVE, - deviceAssetId: 'device-asset-id', - fileModifiedAt: new Date('2023-02-23T05:06:29.716Z'), - fileCreatedAt: new Date('2023-02-23T05:06:29.716Z'), - owner: userStub.user1, - ownerId: 'user-id', - deviceId: 'device-id', - originalPath: '/data/user1/photo.jpg', - checksum: Buffer.from('file hash', 'utf8'), - type: AssetType.IMAGE, - files, - thumbhash: Buffer.from('blablabla', 'base64'), - encodedVideoPath: null, - createdAt: new Date('2023-02-23T05:06:29.716Z'), - updatedAt: new Date('2023-02-23T05:06:29.716Z'), - localDateTime: new Date('2023-02-23T05:06:29.716Z'), - isFavorite: true, - isArchived: false, - isExternal: true, - duration: null, - isVisible: true, - livePhotoVideo: null, - livePhotoVideoId: null, - libraryId: 'library-id', - library: libraryStub.externalLibrary1, - tags: [], - sharedLinks: [], - originalFileName: 'photo', - faces: [], - deletedAt: null, - sidecarPath: null, - exifInfo: { - fileSizeInByte: 5000, - } as ExifEntity, - duplicateId: null, - isOffline: false, - }), + hasFileExtension: Object.freeze({ id: 'asset-id', status: AssetStatus.ACTIVE, @@ -829,6 +746,7 @@ export const assetStub = { duplicateId: null, isOffline: false, }), + imageDng: Object.freeze({ id: 'asset-id', status: AssetStatus.ACTIVE, @@ -868,6 +786,7 @@ export const assetStub = { duplicateId: null, isOffline: false, }), + hasEmbedding: Object.freeze({ id: 'asset-id-embedding', status: AssetStatus.ACTIVE, @@ -909,6 +828,7 @@ export const assetStub = { }, isOffline: false, }), + hasDupe: Object.freeze({ id: 'asset-id-dupe', status: AssetStatus.ACTIVE, diff --git a/server/test/fixtures/audit.stub.ts b/server/test/fixtures/audit.stub.ts index 3e79a60819..24f78a17ce 100644 --- a/server/test/fixtures/audit.stub.ts +++ b/server/test/fixtures/audit.stub.ts @@ -3,22 +3,6 @@ import { DatabaseAction, EntityType } from 'src/enum'; import { authStub } from 'test/fixtures/auth.stub'; export const auditStub = { - create: Object.freeze({ - id: 1, - entityId: 'asset-created', - action: DatabaseAction.CREATE, - entityType: EntityType.ASSET, - ownerId: authStub.admin.user.id, - createdAt: new Date(), - }), - update: Object.freeze({ - id: 2, - entityId: 'asset-updated', - action: DatabaseAction.UPDATE, - entityType: EntityType.ASSET, - ownerId: authStub.admin.user.id, - createdAt: new Date(), - }), delete: Object.freeze({ id: 3, entityId: 'asset-deleted', diff --git a/server/test/fixtures/auth.stub.ts b/server/test/fixtures/auth.stub.ts index bbb53d4db6..2989c0cce1 100644 --- a/server/test/fixtures/auth.stub.ts +++ b/server/test/fixtures/auth.stub.ts @@ -35,17 +35,6 @@ export const authStub = { id: 'token-id', } as SessionEntity, }), - external1: Object.freeze({ - user: { - id: 'user-id', - email: 'immich@test.com', - isAdmin: false, - metadata: [] as UserMetadataEntity[], - } as UserEntity, - session: { - id: 'token-id', - } as SessionEntity, - }), adminSharedLink: Object.freeze({ user: { id: 'admin_id', @@ -76,20 +65,6 @@ export const authStub = { key: Buffer.from('shared-link-key'), } as SharedLinkEntity, }), - readonlySharedLink: Object.freeze({ - user: { - id: 'admin_id', - email: 'admin@test.com', - isAdmin: true, - metadata: [] as UserMetadataEntity[], - } as UserEntity, - sharedLink: { - id: '123', - allowUpload: false, - allowDownload: false, - showExif: true, - } as SharedLinkEntity, - }), passwordSharedLink: Object.freeze({ user: { id: 'admin_id', @@ -106,35 +81,3 @@ export const authStub = { } as SharedLinkEntity, }), }; - -export const loginResponseStub = { - admin: { - response: { - accessToken: expect.any(String), - name: 'Immich Admin', - isAdmin: true, - profileImagePath: '', - shouldChangePassword: true, - userEmail: 'admin@immich.app', - userId: expect.any(String), - }, - }, - user1oauth: { - accessToken: 'cmFuZG9tLWJ5dGVz', - userId: 'user-id', - userEmail: 'immich@test.com', - name: 'immich_name', - profileImagePath: '', - isAdmin: false, - shouldChangePassword: false, - }, - user1password: { - accessToken: 'cmFuZG9tLWJ5dGVz', - userId: 'user-id', - userEmail: 'immich@test.com', - name: 'immich_name', - profileImagePath: '', - isAdmin: false, - shouldChangePassword: false, - }, -}; diff --git a/server/test/fixtures/face.stub.ts b/server/test/fixtures/face.stub.ts index e8c4592b8b..b8c68d5bf4 100644 --- a/server/test/fixtures/face.stub.ts +++ b/server/test/fixtures/face.stub.ts @@ -51,21 +51,6 @@ export const faceStub = { sourceType: SourceType.MACHINE_LEARNING, faceSearch: { faceId: 'assetFaceId3', embedding: [1, 2, 3, 4] }, }), - mergeFace2: Object.freeze>({ - id: 'assetFaceId4', - assetId: assetStub.image1.id, - asset: assetStub.image1, - personId: personStub.mergePerson.id, - person: personStub.mergePerson, - boundingBoxX1: 0, - boundingBoxY1: 0, - boundingBoxX2: 1, - boundingBoxY2: 1, - imageHeight: 1024, - imageWidth: 1024, - sourceType: SourceType.MACHINE_LEARNING, - faceSearch: { faceId: 'assetFaceId4', embedding: [1, 2, 3, 4] }, - }), start: Object.freeze>({ id: 'assetFaceId5', assetId: assetStub.image.id, diff --git a/server/test/fixtures/library.stub.ts b/server/test/fixtures/library.stub.ts index 1a83ffe5d7..b2e132da3e 100644 --- a/server/test/fixtures/library.stub.ts +++ b/server/test/fixtures/library.stub.ts @@ -1,6 +1,3 @@ -import { join } from 'node:path'; -import { APP_MEDIA_LOCATION } from 'src/constants'; -import { THUMBNAIL_DIR } from 'src/cores/storage.core'; import { LibraryEntity } from 'src/entities/library.entity'; import { userStub } from 'test/fixtures/user.stub'; @@ -53,18 +50,6 @@ export const libraryStub = { refreshedAt: null, exclusionPatterns: [], }), - externalLibraryWithExclusionPattern: Object.freeze({ - id: 'library-id', - name: 'test_library', - assets: [], - owner: userStub.admin, - ownerId: 'user-id', - importPaths: [], - createdAt: new Date('2023-01-01'), - updatedAt: new Date('2023-01-01'), - refreshedAt: null, - exclusionPatterns: ['**/dir1/**'], - }), patternPath: Object.freeze({ id: 'library-id1337', name: 'importpath-exclusion-library1', @@ -83,7 +68,7 @@ export const libraryStub = { assets: [], owner: userStub.admin, ownerId: 'user-id', - importPaths: [join(THUMBNAIL_DIR, 'library'), '/xyz', join(APP_MEDIA_LOCATION, 'library')], + importPaths: ['upload/thumbs', '/xyz', 'upload/library'], createdAt: new Date('2023-01-01'), updatedAt: new Date('2023-01-01'), refreshedAt: null, diff --git a/server/test/fixtures/person.stub.ts b/server/test/fixtures/person.stub.ts index 3584d0486e..544894b31e 100644 --- a/server/test/fixtures/person.stub.ts +++ b/server/test/fixtures/person.stub.ts @@ -44,20 +44,6 @@ export const personStub = { faceAsset: null, isHidden: false, }), - noBirthDate: Object.freeze({ - id: 'person-1', - createdAt: new Date('2021-01-01'), - updatedAt: new Date('2021-01-01'), - ownerId: userStub.admin.id, - owner: userStub.admin, - name: 'Person 1', - birthDate: null, - thumbnailPath: '/path/to/thumbnail.jpg', - faces: [], - faceAssetId: null, - faceAsset: null, - isHidden: false, - }), withBirthDate: Object.freeze({ id: 'person-1', createdAt: new Date('2021-01-01'), diff --git a/server/test/fixtures/shared-link.stub.ts b/server/test/fixtures/shared-link.stub.ts index f237e1dea9..e446a6180b 100644 --- a/server/test/fixtures/shared-link.stub.ts +++ b/server/test/fixtures/shared-link.stub.ts @@ -309,21 +309,6 @@ export const sharedLinkResponseStub = { type: SharedLinkType.ALBUM, userId: 'admin_id', }), - readonly: Object.freeze({ - id: '123', - userId: 'admin_id', - key: sharedLinkBytes.toString('base64url'), - type: SharedLinkType.ALBUM, - createdAt: today, - expiresAt: tomorrow, - description: null, - password: null, - allowUpload: false, - allowDownload: false, - showMetadata: true, - album: albumResponse, - assets: [assetResponse], - }), readonlyNoMetadata: Object.freeze({ id: '123', userId: 'admin_id', diff --git a/server/test/fixtures/user.stub.ts b/server/test/fixtures/user.stub.ts index 6f3a819eef..b65cd6b395 100644 --- a/server/test/fixtures/user.stub.ts +++ b/server/test/fixtures/user.stub.ts @@ -2,30 +2,6 @@ import { UserEntity } from 'src/entities/user.entity'; import { UserAvatarColor, UserMetadataKey } from 'src/enum'; import { authStub } from 'test/fixtures/auth.stub'; -export const userDto = { - user1: { - email: 'user1@immich.app', - password: 'Password123', - name: 'User 1', - }, - user2: { - email: 'user2@immich.app', - password: 'Password123', - name: 'User 2', - }, - user3: { - email: 'user3@immich.app', - password: 'Password123', - name: 'User 3', - }, - userWithQuota: { - email: 'quota-user@immich.app', - password: 'Password123', - name: 'User with quota', - quotaSizeInBytes: 42, - }, -}; - export const userStub = { admin: Object.freeze({ ...authStub.admin.user, @@ -100,22 +76,6 @@ export const userStub = { quotaSizeInBytes: null, quotaUsageInBytes: 0, }), - externalPathRoot: Object.freeze({ - ...authStub.user1.user, - password: 'immich_password', - name: 'immich_name', - storageLabel: 'label-1', - oauthId: '', - shouldChangePassword: false, - profileImagePath: '', - createdAt: new Date('2021-01-01'), - deletedAt: null, - updatedAt: new Date('2021-01-01'), - tags: [], - assets: [], - quotaSizeInBytes: null, - quotaUsageInBytes: 0, - }), profilePath: Object.freeze({ ...authStub.user1.user, password: 'immich_password', diff --git a/server/test/repositories/asset.repository.mock.ts b/server/test/repositories/asset.repository.mock.ts index 50fff31e55..982273ff69 100644 --- a/server/test/repositories/asset.repository.mock.ts +++ b/server/test/repositories/asset.repository.mock.ts @@ -17,7 +17,6 @@ export const newAssetRepositoryMock = (): Mocked => { getByChecksum: vitest.fn(), getByChecksums: vitest.fn(), getUploadAssetIdByChecksum: vitest.fn(), - getWith: vitest.fn(), getRandom: vitest.fn(), getLastUpdatedAssetForAlbumId: vitest.fn(), getAll: vitest.fn().mockResolvedValue({ items: [], hasNextPage: false }), diff --git a/server/test/repositories/database.repository.mock.ts b/server/test/repositories/database.repository.mock.ts index 0e1d4ab3e7..da6417a38c 100644 --- a/server/test/repositories/database.repository.mock.ts +++ b/server/test/repositories/database.repository.mock.ts @@ -9,7 +9,6 @@ export const newDatabaseRepositoryMock = (): Mocked => { getPostgresVersion: vitest.fn().mockResolvedValue('14.10 (Debian 14.10-1.pgdg120+1)'), getPostgresVersionRange: vitest.fn().mockReturnValue('>=14.0.0'), createExtension: vitest.fn().mockResolvedValue(void 0), - updateExtension: vitest.fn(), updateVectorExtension: vitest.fn(), reindex: vitest.fn(), shouldReindex: vitest.fn(), diff --git a/server/test/repositories/map.repository.mock.ts b/server/test/repositories/map.repository.mock.ts index 95965522e3..703e8696f1 100644 --- a/server/test/repositories/map.repository.mock.ts +++ b/server/test/repositories/map.repository.mock.ts @@ -6,6 +6,5 @@ export const newMapRepositoryMock = (): Mocked => { init: vitest.fn(), reverseGeocode: vitest.fn(), getMapMarkers: vitest.fn(), - fetchStyle: vitest.fn(), }; }; diff --git a/server/test/repositories/person.repository.mock.ts b/server/test/repositories/person.repository.mock.ts index 286c527038..d7b92d3eab 100644 --- a/server/test/repositories/person.repository.mock.ts +++ b/server/test/repositories/person.repository.mock.ts @@ -16,7 +16,6 @@ export const newPersonRepositoryMock = (): Mocked => { update: vitest.fn(), updateAll: vitest.fn(), delete: vitest.fn(), - deleteAll: vitest.fn(), deleteFaces: vitest.fn(), getStatistics: vitest.fn(), @@ -26,7 +25,6 @@ export const newPersonRepositoryMock = (): Mocked => { reassignFaces: vitest.fn(), unassignFaces: vitest.fn(), - createFaces: vitest.fn(), refreshFaces: vitest.fn(), getFaces: vitest.fn(), reassignFace: vitest.fn(),