mirror of
https://github.com/immich-app/immich.git
synced 2026-03-03 00:47:02 +00:00
@@ -146,7 +146,12 @@ export class IntegrityRepository {
|
||||
),
|
||||
)
|
||||
.select(['allPaths.path as path', 'allPaths.assetId', 'allPaths.fileAssetId', 'integrity_report.id as reportId'])
|
||||
.stream();
|
||||
.stream() as AsyncIterableIterator<
|
||||
{ path: string; reportId: string | null } & (
|
||||
| { assetId: string; fileAssetId: null }
|
||||
| { assetId: null; fileAssetId: string }
|
||||
)
|
||||
>;
|
||||
}
|
||||
|
||||
@GenerateSql({ params: [DummyValue.DATE, DummyValue.DATE], stream: true })
|
||||
|
||||
@@ -301,12 +301,10 @@ export interface IIntegrityUntrackedFilesJob {
|
||||
}
|
||||
|
||||
export interface IIntegrityMissingFilesJob {
|
||||
items: {
|
||||
path: string;
|
||||
reportId: string | null;
|
||||
assetId: string | null;
|
||||
fileAssetId: string | null;
|
||||
}[];
|
||||
items: ({ path: string; reportId: string | null } & (
|
||||
| { assetId: string; fileAssetId: null }
|
||||
| { assetId: null; fileAssetId: string }
|
||||
))[];
|
||||
}
|
||||
|
||||
export interface IIntegrityPathWithReportJob {
|
||||
|
||||
@@ -468,9 +468,18 @@ describe(IntegrityService.name, () => {
|
||||
const integrity = ctx.get(IntegrityRepository);
|
||||
const storage = ctx.getMock(StorageRepository);
|
||||
|
||||
const {
|
||||
result: { id: ownerId },
|
||||
} = await ctx.newUser();
|
||||
|
||||
const {
|
||||
result: { id: assetId },
|
||||
} = await ctx.newAsset({ ownerId, originalPath: '/path/to/file1' });
|
||||
|
||||
const { id: restoredId } = await integrity.create({
|
||||
type: IntegrityReportType.MissingFile,
|
||||
path: '/path/to/restored',
|
||||
assetId,
|
||||
});
|
||||
|
||||
storage.stat
|
||||
@@ -480,9 +489,9 @@ describe(IntegrityService.name, () => {
|
||||
|
||||
await sut.handleMissingFiles({
|
||||
items: [
|
||||
{ path: '/path/to/existing', assetId: null, fileAssetId: null, reportId: null },
|
||||
{ path: '/path/to/missing', assetId: null, fileAssetId: null, reportId: null },
|
||||
{ path: '/path/to/restored', assetId: null, fileAssetId: null, reportId: restoredId },
|
||||
{ path: '/path/to/existing', assetId, fileAssetId: null, reportId: null },
|
||||
{ path: '/path/to/missing', assetId, fileAssetId: null, reportId: null },
|
||||
{ path: '/path/to/restored', assetId, fileAssetId: null, reportId: restoredId },
|
||||
],
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user