M8 Abschlussdokumentation und Betriebsdoku final geschärft
This commit is contained in:
@@ -63,7 +63,7 @@ class DefaultRetryDecisionEvaluatorTest {
|
||||
|
||||
@Test
|
||||
void evaluate_subsequentContentErrors_alwaysReturnContentErrorFinal() {
|
||||
// Any count >= 1 results in final (covers legacy M4-M6 data with higher counts)
|
||||
// Any count >= 1 results in final (covers legacy data with higher counts)
|
||||
for (int count = 1; count <= 5; count++) {
|
||||
FailureCounters counters = new FailureCounters(count, 0);
|
||||
|
||||
@@ -185,7 +185,7 @@ class DefaultRetryDecisionEvaluatorTest {
|
||||
|
||||
@Test
|
||||
void evaluate_transientError_legacyDataWithHigherCounts_finalizesCorrectly() {
|
||||
// Existing M4-M6 data may have counter values beyond normal expectations;
|
||||
// Existing legacy data may have counter values beyond normal expectations;
|
||||
// the evaluator must still apply the threshold check consistently
|
||||
FailureCounters counters = new FailureCounters(3, 5);
|
||||
|
||||
|
||||
@@ -124,7 +124,7 @@ class DocumentProcessingCoordinatorTest {
|
||||
assertEquals(ProcessingStatus.PROPOSAL_READY, record.overallStatus());
|
||||
assertEquals(0, record.failureCounters().contentErrorCount());
|
||||
assertEquals(0, record.failureCounters().transientErrorCount());
|
||||
// lastSuccessInstant is null in M5; it is set by the target-copy stage (M6)
|
||||
// lastSuccessInstant is null after AI naming proposal; it is set only after the target-copy stage
|
||||
assertNull(record.lastSuccessInstant());
|
||||
assertNull(record.lastFailureInstant());
|
||||
}
|
||||
@@ -283,7 +283,7 @@ class DocumentProcessingCoordinatorTest {
|
||||
// Counters unchanged on naming proposal success
|
||||
assertEquals(0, record.failureCounters().contentErrorCount());
|
||||
assertEquals(1, record.failureCounters().transientErrorCount());
|
||||
// lastSuccessInstant is null in M5; it is set by the target-copy stage (M6)
|
||||
// lastSuccessInstant is null after AI naming proposal; it is set only after the target-copy stage
|
||||
assertNull(record.lastSuccessInstant());
|
||||
}
|
||||
|
||||
@@ -599,7 +599,7 @@ class DocumentProcessingCoordinatorTest {
|
||||
@Test
|
||||
void process_knownDocument_namingProposalReady_lastSuccessInstantNullAndLastFailureInstantFromPreviousRecord() {
|
||||
// Prüft, dass bei PROPOSAL_READY am known-Dokument lastSuccessInstant null bleibt
|
||||
// (M6 setzt ihn erst nach der Zielkopie) und lastFailureInstant aus dem Vorgänger übernommen wird
|
||||
// (wird erst nach der Zielkopie gesetzt) und lastFailureInstant aus dem Vorgänger übernommen wird
|
||||
Instant previousFailureInstant = Instant.parse("2025-01-15T10:00:00Z");
|
||||
DocumentRecord existingRecord = new DocumentRecord(
|
||||
fingerprint,
|
||||
@@ -621,7 +621,7 @@ class DocumentProcessingCoordinatorTest {
|
||||
|
||||
DocumentRecord updated = recordRepo.updatedRecords.get(0);
|
||||
assertNull(updated.lastSuccessInstant(),
|
||||
"lastSuccessInstant muss nach PROPOSAL_READY null bleiben (wird erst von M6 gesetzt)");
|
||||
"lastSuccessInstant muss nach PROPOSAL_READY null bleiben (wird erst nach der Zielkopie gesetzt)");
|
||||
assertEquals(previousFailureInstant, updated.lastFailureInstant(),
|
||||
"lastFailureInstant muss bei PROPOSAL_READY den Vorgänger-Wert beibehalten");
|
||||
}
|
||||
|
||||
@@ -262,7 +262,7 @@ class ProcessingOutcomeTransitionTest {
|
||||
|
||||
@Test
|
||||
void forKnownDocument_transientError_legacyHighCounters_stillFinalise() {
|
||||
// Legacy data from M4-M6 may have counters well above normal expectations.
|
||||
// Legacy data may have counters well above normal expectations.
|
||||
// The threshold check must still apply correctly.
|
||||
TechnicalDocumentError outcome = new TechnicalDocumentError(candidate(), "error", null);
|
||||
FailureCounters existing = new FailureCounters(3, 10); // already far above limit
|
||||
|
||||
@@ -728,7 +728,7 @@ class BatchRunProcessingUseCaseTest {
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Batch-level M7 integration tests (real coordinator + capturing repos)
|
||||
// Batch-level integration tests (real coordinator + capturing repos)
|
||||
// These prove that skip and finalization semantics work in the actual batch run,
|
||||
// not just at the coordinator unit-test level.
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user