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.Row;
|
||||||
import org.apache.poi.ss.usermodel.Sheet;
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
|
import org.junit.jupiter.api.AfterEach;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.raddatz.familienarchiv.PostgresContainerConfig;
|
import org.raddatz.familienarchiv.PostgresContainerConfig;
|
||||||
@@ -59,6 +60,22 @@ class CanonicalImportIntegrationTest {
|
|||||||
ReflectionTestUtils.setField(orchestrator, "canonicalDir", artifactDir.toString());
|
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
|
@Test
|
||||||
void reimport_isIdempotent_noDuplicatePersonsTagsOrDocuments() {
|
void reimport_isIdempotent_noDuplicatePersonsTagsOrDocuments() {
|
||||||
orchestrator.runImport();
|
orchestrator.runImport();
|
||||||
|
|||||||
Reference in New Issue
Block a user