From 4dba268a0419eaf60352fe006855e76456aacd1c Mon Sep 17 00:00:00 2001 From: Marcel Date: Thu, 14 May 2026 16:16:22 +0200 Subject: [PATCH] test(import): add IMPORT_DONE statusCode service test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Covers the success path — previously untested per Sara's review. Creates a minimal empty XLSX via XSSFWorkbook so processRows returns 0. Co-Authored-By: Claude Sonnet 4.6 --- .../importing/MassImportServiceTest.java | 19 +++++++++++++++++++ 1 file changed, 19 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 a3ab9cf9..845aaf3b 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/importing/MassImportServiceTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/importing/MassImportServiceTest.java @@ -20,7 +20,10 @@ import software.amazon.awssdk.core.sync.RequestBody; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.PutObjectRequest; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + import java.io.File; +import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Path; import java.time.LocalDate; @@ -108,6 +111,22 @@ class MassImportServiceTest { assertThat(service.getStatus().statusCode()).isEqualTo("IMPORT_FAILED_NO_SPREADSHEET"); } + @Test + void runImportAsync_setsStatusCode_IMPORT_DONE_whenSpreadsheetHasNoDataRows(@TempDir Path tempDir) throws Exception { + Path xlsx = tempDir.resolve("import.xlsx"); + try (XSSFWorkbook wb = new XSSFWorkbook()) { + wb.createSheet("Sheet1"); + try (OutputStream out = Files.newOutputStream(xlsx)) { + wb.write(out); + } + } + ReflectionTestUtils.setField(service, "importDir", tempDir.toString()); + + service.runImportAsync(); + + assertThat(service.getStatus().statusCode()).isEqualTo("IMPORT_DONE"); + } + @Test void runImportAsync_throwsConflict_whenAlreadyRunning() { MassImportService.ImportStatus running = new MassImportService.ImportStatus(