mirror of
https://github.com/immich-app/immich.git
synced 2025-07-09 03:06:56 -04:00
fix tests
This commit is contained in:
parent
8e130a6e3e
commit
3a03667a44
@ -190,14 +190,11 @@ describe('checkForDuplicates', () => {
|
||||
});
|
||||
});
|
||||
|
||||
// TODO: this shouldn't return empty arrays, this should return an error
|
||||
// Failed duplicate checks should be a reason for panic instead of ignoring
|
||||
it('returns results when check duplicates retry is failed', async () => {
|
||||
it('throws error when check duplicates retry is failed', async () => {
|
||||
vi.mocked(checkBulkUpload).mockRejectedValue(new Error('Network error'));
|
||||
|
||||
await expect(checkForDuplicates([testFilePath], { concurrency: 1 })).resolves.toEqual({
|
||||
duplicates: [],
|
||||
newFiles: [],
|
||||
});
|
||||
await expect(checkForDuplicates([testFilePath], { concurrency: 1 })).rejects.toThrowError(
|
||||
'An error occurred while checking for duplicates: Network error',
|
||||
);
|
||||
});
|
||||
});
|
||||
|
@ -122,20 +122,29 @@ export const checkForDuplicates = async (files: string[], { concurrency, skipHas
|
||||
const newFiles: string[] = [];
|
||||
const duplicates: Asset[] = [];
|
||||
|
||||
// TODO: Retry 3 times if there is an error
|
||||
try {
|
||||
const response = await checkBulkUpload({ assetBulkUploadCheckDto: { assets: results } });
|
||||
let retries = 0;
|
||||
const maxRetries = 3;
|
||||
|
||||
for (const { id: filepath, assetId, action } of response.results) {
|
||||
if (action === Action.Accept) {
|
||||
newFiles.push(filepath);
|
||||
} else {
|
||||
// rejects are always duplicates
|
||||
duplicates.push({ id: assetId as string, filepath });
|
||||
while (retries < maxRetries) {
|
||||
try {
|
||||
const response = await checkBulkUpload({ assetBulkUploadCheckDto: { assets: results } });
|
||||
|
||||
for (const { id: filepath, assetId, action } of response.results) {
|
||||
if (action === Action.Accept) {
|
||||
newFiles.push(filepath);
|
||||
} else {
|
||||
// rejects are always duplicates
|
||||
duplicates.push({ id: assetId as string, filepath });
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
} catch (error: any) {
|
||||
retries++;
|
||||
if (retries >= maxRetries) {
|
||||
throw new Error(`An error occurred while checking for duplicates: ${error.message}`);
|
||||
}
|
||||
}
|
||||
} catch (error: any) {
|
||||
throw new Error(`An error occurred while checking for duplicates: ${error.message}`);
|
||||
}
|
||||
|
||||
progressBar.stop();
|
||||
|
Loading…
x
Reference in New Issue
Block a user