From 4af35b162ed822d888eaa922512367cdf081a4c1 Mon Sep 17 00:00:00 2001 From: Maurice Date: Tue, 30 Jun 2026 12:00:46 +0200 Subject: [PATCH] test(video): update gallery accept selector + complete fileService mocks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The gallery upload input now accepts image/*,video/* — update the two JourneyDetailPage selectors that matched the old value. The files/journey e2e suites mock fileService and were missing the new MAX_VIDEO_SIZE / isVideoExtension / isVideoMime exports, which broke module load. --- client/src/pages/JourneyDetailPage.test.tsx | 4 ++-- server/tests/e2e/files.e2e.test.ts | 3 ++- server/tests/e2e/journey.e2e.test.ts | 7 ++++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/client/src/pages/JourneyDetailPage.test.tsx b/client/src/pages/JourneyDetailPage.test.tsx index abdd1443..abef57e6 100644 --- a/client/src/pages/JourneyDetailPage.test.tsx +++ b/client/src/pages/JourneyDetailPage.test.tsx @@ -1813,7 +1813,7 @@ describe('JourneyDetailPage', () => { expect(uploadBtn).toBeTruthy(); // Verify the hidden file input exists in the gallery view - const fileInput = document.querySelector('input[type="file"][accept="image/*"]') as HTMLInputElement; + const fileInput = document.querySelector('input[type="file"][accept="image/*,video/*"]') as HTMLInputElement; expect(fileInput).toBeTruthy(); }); }); @@ -3314,7 +3314,7 @@ describe('JourneyDetailPage', () => { }); // Find the hidden file input in the gallery view - const fileInput = document.querySelector('input[type="file"][accept="image/*"][multiple]') as HTMLInputElement; + const fileInput = document.querySelector('input[type="file"][accept="image/*,video/*"][multiple]') as HTMLInputElement; expect(fileInput).toBeTruthy(); // Simulate file selection diff --git a/server/tests/e2e/files.e2e.test.ts b/server/tests/e2e/files.e2e.test.ts index 676e32b7..d511cbd6 100644 --- a/server/tests/e2e/files.e2e.test.ts +++ b/server/tests/e2e/files.e2e.test.ts @@ -31,7 +31,8 @@ vi.mock('../../src/services/permissions', () => ({ checkPermission })); const { fileSvc } = vi.hoisted(() => ({ fileSvc: { - MAX_FILE_SIZE: 50 * 1024 * 1024, BLOCKED_EXTENSIONS: ['.exe', '.svg'], filesDir: '/tmp/files', getAllowedExtensions: () => '*', + MAX_FILE_SIZE: 50 * 1024 * 1024, MAX_VIDEO_SIZE: 500 * 1024 * 1024, BLOCKED_EXTENSIONS: ['.exe', '.svg'], filesDir: '/tmp/files', getAllowedExtensions: () => '*', + isVideoExtension: (ext: string) => ['mp4', 'm4v', 'webm', 'mov'].includes(String(ext).toLowerCase().replace(/^\./, '')), isVideoMime: (m?: string) => !!m && m.startsWith('video/'), verifyTripAccess: vi.fn(), resolveFilePath: vi.fn(), authenticateDownload: vi.fn(), listFiles: vi.fn(), getFileById: vi.fn(), getDeletedFile: vi.fn(), createFile: vi.fn(), updateFile: vi.fn(), toggleStarred: vi.fn(), softDeleteFile: vi.fn(), restoreFile: vi.fn(), permanentDeleteFile: vi.fn(), diff --git a/server/tests/e2e/journey.e2e.test.ts b/server/tests/e2e/journey.e2e.test.ts index 3be9dfce..5df022e4 100644 --- a/server/tests/e2e/journey.e2e.test.ts +++ b/server/tests/e2e/journey.e2e.test.ts @@ -26,7 +26,12 @@ vi.mock('../../src/db/database', () => ({ db, closeDb: () => {}, reinitialize: ( const { isAddonEnabled } = vi.hoisted(() => ({ isAddonEnabled: vi.fn(() => true) })); vi.mock('../../src/services/adminService', () => ({ isAddonEnabled })); -vi.mock('../../src/services/fileService', () => ({ getAllowedExtensions: () => '*' })); +vi.mock('../../src/services/fileService', () => ({ + getAllowedExtensions: () => '*', + MAX_VIDEO_SIZE: 500 * 1024 * 1024, + isVideoExtension: (ext: string) => ['mp4', 'm4v', 'webm', 'mov'].includes(String(ext).toLowerCase().replace(/^\./, '')), + isVideoMime: (m?: string) => !!m && m.startsWith('video/'), +})); vi.mock('../../src/services/memories/immichService', () => ({ uploadToImmich: vi.fn(), streamImmichAsset: vi.fn() })); vi.mock('../../src/services/memories/photoResolverService', () => ({ streamPhoto: vi.fn() }));