From 890f014bb302a87d6f2dd37c301722e7d2789d9d Mon Sep 17 00:00:00 2001 From: Marcel Date: Thu, 21 May 2026 10:08:06 +0200 Subject: [PATCH] test(import): add regression tests for leading-dot and spaced filenames MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Documents that .hidden.pdf and "Brief an Oma.pdf" correctly pass the isValidImportFilename guard — both are valid basenames common in the archive. Co-Authored-By: Claude Sonnet 4.6 --- .../importing/MassImportServiceTest.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/backend/src/test/java/org/raddatz/familienarchiv/importing/MassImportServiceTest.java b/backend/src/test/java/org/raddatz/familienarchiv/importing/MassImportServiceTest.java index 167b78cd..0fb50a8e 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/importing/MassImportServiceTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/importing/MassImportServiceTest.java @@ -512,6 +512,18 @@ class MassImportServiceTest { assertThat(result).isFalse(); } + @Test + void isValidImportFilename_returnsTrue_whenFilenameHasLeadingDot() { + boolean result = ReflectionTestUtils.invokeMethod(service, "isValidImportFilename", ".hidden.pdf"); + assertThat(result).isTrue(); + } + + @Test + void isValidImportFilename_returnsTrue_whenFilenameHasSpaces() { + boolean result = ReflectionTestUtils.invokeMethod(service, "isValidImportFilename", "Brief an Oma.pdf"); + assertThat(result).isTrue(); + } + @Test void processRows_skipsRowAndContinues_whenFilenameIsPathTraversal() { when(documentService.findByOriginalFilename("legitimate.pdf")).thenReturn(Optional.empty());