test(importing): clean up committed rows after CanonicalImportIntegrationTest
All checks were successful
CI / Unit & Component Tests (pull_request) Successful in 3m41s
CI / OCR Service Tests (pull_request) Successful in 19s
CI / Backend Unit Tests (pull_request) Successful in 3m34s
CI / fail2ban Regex (pull_request) Successful in 43s
CI / Semgrep Security Scan (pull_request) Successful in 19s
CI / Compose Bucket Idempotency (pull_request) Successful in 1m1s
All checks were successful
CI / Unit & Component Tests (pull_request) Successful in 3m41s
CI / OCR Service Tests (pull_request) Successful in 19s
CI / Backend Unit Tests (pull_request) Successful in 3m34s
CI / fail2ban Regex (pull_request) Successful in 43s
CI / Semgrep Security Scan (pull_request) Successful in 19s
CI / Compose Bucket Idempotency (pull_request) Successful in 1m1s
The canonical importer commits through its own transactions, so this test cannot use @Transactional rollback for isolation. Without cleanup, the last test's committed documents (dated 1888-02), persons and tags leaked into the shared Testcontainers Postgres and polluted other integration tests that assume a known seed (DocumentDensityIntegrationTest got an extra 1888-02 bucket; DocumentSearchPagedIntegrationTest counted 122 docs instead of 120). Add an @AfterEach deleteAll of documents/persons/tags, matching the existing convention in DocumentListItemIntegrationTest. Refs #669
This commit is contained in:
@@ -3,6 +3,7 @@ package org.raddatz.familienarchiv.importing;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.raddatz.familienarchiv.PostgresContainerConfig;
|
||||
@@ -59,6 +60,22 @@ class CanonicalImportIntegrationTest {
|
||||
ReflectionTestUtils.setField(orchestrator, "canonicalDir", artifactDir.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* The import commits through its own transactions (the orchestrator is not transactional),
|
||||
* so this test cannot rely on {@code @Transactional} rollback for isolation. Delete the
|
||||
* committed rows after each test — otherwise the last test's documents (dated 1888-02) and
|
||||
* persons/tags leak into the shared Testcontainers Postgres and pollute other integration
|
||||
* tests that assume a known seed (e.g. DocumentDensityIntegrationTest,
|
||||
* DocumentSearchPagedIntegrationTest). Mirrors the @AfterEach deleteAll convention used by
|
||||
* DocumentListItemIntegrationTest.
|
||||
*/
|
||||
@AfterEach
|
||||
void cleanup() {
|
||||
documentRepository.deleteAll();
|
||||
personRepository.deleteAll();
|
||||
tagRepository.deleteAll();
|
||||
}
|
||||
|
||||
@Test
|
||||
void reimport_isIdempotent_noDuplicatePersonsTagsOrDocuments() {
|
||||
orchestrator.runImport();
|
||||
|
||||
Reference in New Issue
Block a user