fix(downloads): handle root category folders and cookie fallback

Allow explicit empty category subfolders to resolve to the base download folder across settings, UI, and backend ownership paths.

Retry yt-dlp metadata and media downloads without browser cookies when the selected browser cookie database cannot be copied, while preserving real auth failures.

Fixes #6

Fixes #7
This commit is contained in:
NimBold
2026-07-06 20:19:33 +03:30
parent 5ea46024e9
commit 99f73eaae2
6 changed files with 147 additions and 35 deletions
+12
View File
@@ -65,6 +65,18 @@ describe('download locations', () => {
expect(await resolveCategoryDestination(automatic, 'Movies')).toBe('/Volumes/Media');
});
it('keeps an explicit empty category subfolder as the base folder', async () => {
const settings = normalizeDownloadLocationSettings({
baseDownloadFolder: '/Users/test/Downloads',
categorySubfolders: { Movies: '' }
});
expect(settings.categorySubfolders.Movies).toBe('');
expect(settings.categorySubfolders.Documents).toBe('Documents');
expect(formatDerivedCategoryPath('/Users/test/Downloads', '')).toBe('/Users/test/Downloads');
expect(await resolveCategoryDestination(settings, 'Movies')).toBe('/Users/test/Downloads');
});
it('keeps category subfolders relative and permits nested folders', () => {
expect(normalizeCategorySubfolder('../Media/./Movies', 'Movies')).toBe('Media/Movies');
expect(normalizeCategorySubfolder('C:\\Media\\Movies', 'Movies')).toBe('Media/Movies');