You've already forked immich
mirror of
https://github.com/immich-app/immich.git
synced 2025-08-08 23:07:06 +02:00
refactor: repositories (#15561)
* refactor: version history repository * refactor: oauth repository * refactor: trash repository * refactor: telemetry repository * refactor: metadata repository * refactor: cron repository * refactor: map repository * refactor: server-info repository * refactor: album user repository * refactor: notification repository
This commit is contained in:
2
server/test/fixtures/metadata.stub.ts
vendored
2
server/test/fixtures/metadata.stub.ts
vendored
@ -1,4 +1,4 @@
|
||||
import { ImmichTags } from 'src/interfaces/metadata.interface';
|
||||
import { ImmichTags } from 'src/repositories/metadata.repository';
|
||||
import { personStub } from 'test/fixtures/person.stub';
|
||||
|
||||
export const metadataStub = {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { IAlbumUserRepository } from 'src/interfaces/album-user.interface';
|
||||
import { IAlbumUserRepository } from 'src/types';
|
||||
import { Mocked } from 'vitest';
|
||||
|
||||
export const newAlbumUserRepositoryMock = (): Mocked<IAlbumUserRepository> => {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { ICronRepository } from 'src/interfaces/cron.interface';
|
||||
import { ICronRepository } from 'src/types';
|
||||
import { Mocked, vitest } from 'vitest';
|
||||
|
||||
export const newCronRepositoryMock = (): Mocked<ICronRepository> => {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { IMapRepository } from 'src/interfaces/map.interface';
|
||||
import { IMapRepository } from 'src/types';
|
||||
import { Mocked } from 'vitest';
|
||||
|
||||
export const newMapRepositoryMock = (): Mocked<IMapRepository> => {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { IMetadataRepository } from 'src/interfaces/metadata.interface';
|
||||
import { IMetadataRepository } from 'src/types';
|
||||
import { Mocked, vitest } from 'vitest';
|
||||
|
||||
export const newMetadataRepositoryMock = (): Mocked<IMetadataRepository> => {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { INotificationRepository } from 'src/interfaces/notification.interface';
|
||||
import { INotificationRepository } from 'src/types';
|
||||
import { Mocked } from 'vitest';
|
||||
|
||||
export const newNotificationRepositoryMock = (): Mocked<INotificationRepository> => {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { IOAuthRepository } from 'src/interfaces/oauth.interface';
|
||||
import { IOAuthRepository } from 'src/types';
|
||||
import { Mocked } from 'vitest';
|
||||
|
||||
export const newOAuthRepositoryMock = (): Mocked<IOAuthRepository> => {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { IServerInfoRepository } from 'src/interfaces/server-info.interface';
|
||||
import { IServerInfoRepository } from 'src/types';
|
||||
import { Mocked, vitest } from 'vitest';
|
||||
|
||||
export const newServerInfoRepositoryMock = (): Mocked<IServerInfoRepository> => {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { ITelemetryRepository } from 'src/interfaces/telemetry.interface';
|
||||
import { ITelemetryRepository, RepositoryInterface } from 'src/types';
|
||||
import { Mocked, vitest } from 'vitest';
|
||||
|
||||
const newMetricGroupMock = () => {
|
||||
@ -10,7 +10,11 @@ const newMetricGroupMock = () => {
|
||||
};
|
||||
};
|
||||
|
||||
export const newTelemetryRepositoryMock = (): Mocked<ITelemetryRepository> => {
|
||||
export type ITelemetryRepositoryMock = {
|
||||
[K in keyof ITelemetryRepository]: Mocked<RepositoryInterface<ITelemetryRepository[K]>>;
|
||||
};
|
||||
|
||||
export const newTelemetryRepositoryMock = (): ITelemetryRepositoryMock => {
|
||||
return {
|
||||
setup: vitest.fn(),
|
||||
api: newMetricGroupMock(),
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { ITrashRepository } from 'src/interfaces/trash.interface';
|
||||
import { ITrashRepository } from 'src/types';
|
||||
import { Mocked, vitest } from 'vitest';
|
||||
|
||||
export const newTrashRepositoryMock = (): Mocked<ITrashRepository> => {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { IVersionHistoryRepository } from 'src/interfaces/version-history.interface';
|
||||
import { IVersionHistoryRepository } from 'src/types';
|
||||
import { Mocked, vitest } from 'vitest';
|
||||
|
||||
export const newVersionHistoryRepositoryMock = (): Mocked<IVersionHistoryRepository> => {
|
||||
|
@ -2,24 +2,42 @@ import { ChildProcessWithoutNullStreams } from 'node:child_process';
|
||||
import { Writable } from 'node:stream';
|
||||
import { PNG } from 'pngjs';
|
||||
import { ImmichWorker } from 'src/enum';
|
||||
import { IMetadataRepository } from 'src/interfaces/metadata.interface';
|
||||
import { AccessRepository } from 'src/repositories/access.repository';
|
||||
import { ActivityRepository } from 'src/repositories/activity.repository';
|
||||
import { AlbumUserRepository } from 'src/repositories/album-user.repository';
|
||||
import { ApiKeyRepository } from 'src/repositories/api-key.repository';
|
||||
import { AuditRepository } from 'src/repositories/audit.repository';
|
||||
import { CronRepository } from 'src/repositories/cron.repository';
|
||||
import { LoggingRepository } from 'src/repositories/logging.repository';
|
||||
import { MapRepository } from 'src/repositories/map.repository';
|
||||
import { MediaRepository } from 'src/repositories/media.repository';
|
||||
import { MemoryRepository } from 'src/repositories/memory.repository';
|
||||
import { MetadataRepository } from 'src/repositories/metadata.repository';
|
||||
import { NotificationRepository } from 'src/repositories/notification.repository';
|
||||
import { OAuthRepository } from 'src/repositories/oauth.repository';
|
||||
import { ServerInfoRepository } from 'src/repositories/server-info.repository';
|
||||
import { TelemetryRepository } from 'src/repositories/telemetry.repository';
|
||||
import { TrashRepository } from 'src/repositories/trash.repository';
|
||||
import { VersionHistoryRepository } from 'src/repositories/version-history.repository';
|
||||
import { ViewRepository } from 'src/repositories/view-repository';
|
||||
import { BaseService } from 'src/services/base.service';
|
||||
import {
|
||||
IAccessRepository,
|
||||
IActivityRepository,
|
||||
IAlbumUserRepository,
|
||||
IApiKeyRepository,
|
||||
IAuditRepository,
|
||||
ICronRepository,
|
||||
ILoggingRepository,
|
||||
IMapRepository,
|
||||
IMediaRepository,
|
||||
IMemoryRepository,
|
||||
IMetadataRepository,
|
||||
INotificationRepository,
|
||||
IOAuthRepository,
|
||||
IServerInfoRepository,
|
||||
ITrashRepository,
|
||||
IVersionHistoryRepository,
|
||||
IViewRepository,
|
||||
} from 'src/types';
|
||||
import { newAccessRepositoryMock } from 'test/repositories/access.repository.mock';
|
||||
@ -66,7 +84,7 @@ import { Mocked, vitest } from 'vitest';
|
||||
|
||||
type Overrides = {
|
||||
worker?: ImmichWorker;
|
||||
metadataRepository?: IMetadataRepository;
|
||||
metadataRepository?: MetadataRepository;
|
||||
};
|
||||
type BaseServiceArgs = ConstructorParameters<typeof BaseService>;
|
||||
type Constructor<Type, Args extends Array<any>> = {
|
||||
@ -125,10 +143,10 @@ export const newTestService = <T extends BaseService>(
|
||||
activityMock as IActivityRepository as ActivityRepository,
|
||||
auditMock as IAuditRepository as AuditRepository,
|
||||
albumMock,
|
||||
albumUserMock,
|
||||
albumUserMock as IAlbumUserRepository as AlbumUserRepository,
|
||||
assetMock,
|
||||
configMock,
|
||||
cronMock,
|
||||
cronMock as ICronRepository as CronRepository,
|
||||
cryptoMock,
|
||||
databaseMock,
|
||||
eventMock,
|
||||
@ -136,28 +154,28 @@ export const newTestService = <T extends BaseService>(
|
||||
keyMock as IApiKeyRepository as ApiKeyRepository,
|
||||
libraryMock,
|
||||
machineLearningMock,
|
||||
mapMock,
|
||||
mapMock as IMapRepository as MapRepository,
|
||||
mediaMock as IMediaRepository as MediaRepository,
|
||||
memoryMock as IMemoryRepository as MemoryRepository,
|
||||
metadataMock,
|
||||
metadataMock as IMetadataRepository as MetadataRepository,
|
||||
moveMock,
|
||||
notificationMock,
|
||||
oauthMock,
|
||||
notificationMock as INotificationRepository as NotificationRepository,
|
||||
oauthMock as IOAuthRepository as OAuthRepository,
|
||||
partnerMock,
|
||||
personMock,
|
||||
processMock,
|
||||
searchMock,
|
||||
serverInfoMock,
|
||||
serverInfoMock as IServerInfoRepository as ServerInfoRepository,
|
||||
sessionMock,
|
||||
sharedLinkMock,
|
||||
stackMock,
|
||||
storageMock,
|
||||
systemMock,
|
||||
tagMock,
|
||||
telemetryMock,
|
||||
trashMock,
|
||||
telemetryMock as unknown as TelemetryRepository,
|
||||
trashMock as ITrashRepository as TrashRepository,
|
||||
userMock,
|
||||
versionHistoryMock,
|
||||
versionHistoryMock as IVersionHistoryRepository as VersionHistoryRepository,
|
||||
viewMock as IViewRepository as ViewRepository,
|
||||
);
|
||||
|
||||
|
Reference in New Issue
Block a user