fix tests

This commit is contained in:
tiefseetauchner 2024-08-15 20:39:57 +02:00
parent 8e130a6e3e
commit 3a03667a44
2 changed files with 24 additions and 18 deletions

View File

@ -190,14 +190,11 @@ describe('checkForDuplicates', () => {
}); });
}); });
// TODO: this shouldn't return empty arrays, this should return an error it('throws error when check duplicates retry is failed', async () => {
// Failed duplicate checks should be a reason for panic instead of ignoring
it('returns results when check duplicates retry is failed', async () => {
vi.mocked(checkBulkUpload).mockRejectedValue(new Error('Network error')); vi.mocked(checkBulkUpload).mockRejectedValue(new Error('Network error'));
await expect(checkForDuplicates([testFilePath], { concurrency: 1 })).resolves.toEqual({ await expect(checkForDuplicates([testFilePath], { concurrency: 1 })).rejects.toThrowError(
duplicates: [], 'An error occurred while checking for duplicates: Network error',
newFiles: [], );
});
}); });
}); });

View File

@ -122,20 +122,29 @@ export const checkForDuplicates = async (files: string[], { concurrency, skipHas
const newFiles: string[] = []; const newFiles: string[] = [];
const duplicates: Asset[] = []; const duplicates: Asset[] = [];
// TODO: Retry 3 times if there is an error let retries = 0;
try { const maxRetries = 3;
const response = await checkBulkUpload({ assetBulkUploadCheckDto: { assets: results } });
for (const { id: filepath, assetId, action } of response.results) { while (retries < maxRetries) {
if (action === Action.Accept) { try {
newFiles.push(filepath); const response = await checkBulkUpload({ assetBulkUploadCheckDto: { assets: results } });
} else {
// rejects are always duplicates for (const { id: filepath, assetId, action } of response.results) {
duplicates.push({ id: assetId as string, filepath }); 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(); progressBar.stop();