Fix Issue #13: Warnschwelle für max.title.length auf 10–39 angehoben
Neue Warnschwellen: 10–39 Warnung (Absender benötigt 15–20 Zeichen), 40–99 unkritisch, 100–120 Warnung (verschlüsselte Volumes). Tests, Validator-Implementierungen, Smoke-Tests und Docs konsistent angepasst. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+7
-7
@@ -68,7 +68,7 @@ public class EditorConfigurationValidator {
|
||||
// Grenzen für die maximale Basistitel-Länge.
|
||||
private static final int TITLE_LENGTH_MIN = 10;
|
||||
private static final int TITLE_LENGTH_MAX = 120;
|
||||
private static final int TITLE_LENGTH_LOW_WARN_THRESHOLD = 20;
|
||||
private static final int TITLE_LENGTH_LOW_WARN_THRESHOLD = 40;
|
||||
private static final int TITLE_LENGTH_HIGH_WARN_THRESHOLD = 100;
|
||||
|
||||
/**
|
||||
@@ -237,10 +237,10 @@ public class EditorConfigurationValidator {
|
||||
* <li>< {@value #TITLE_LENGTH_MIN}: Fehler (Minimum)</li>
|
||||
* <li>> {@value #TITLE_LENGTH_MAX}: Fehler (sicheres Maximum für verschlüsselte Volumes)</li>
|
||||
* <li>{@value #TITLE_LENGTH_MIN}–{@value #TITLE_LENGTH_LOW_WARN_THRESHOLD} (einschließlich
|
||||
* 19): Warnung (unter 20 Zeichen selten empfehlenswert)</li>
|
||||
* 39): Warnung (unter 40 Zeichen – KI-Ergebnisse können unvollständig sein)</li>
|
||||
* <li>≥ {@value #TITLE_LENGTH_HIGH_WARN_THRESHOLD}: Warnung (Kompatibilitätsrisiko
|
||||
* mit verschlüsselten Volumes)</li>
|
||||
* <li>andernfalls (20–99): kein Befund</li>
|
||||
* <li>andernfalls (40–99): kein Befund</li>
|
||||
* </ul>
|
||||
*
|
||||
* @param rawValue Rohwert aus dem Editor; nie {@code null}
|
||||
@@ -275,17 +275,17 @@ public class EditorConfigurationValidator {
|
||||
}
|
||||
if (value < TITLE_LENGTH_LOW_WARN_THRESHOLD) {
|
||||
findings.add(EditorValidationFinding.warning(FIELD_MAX_TITLE_LENGTH,
|
||||
"Titellänge unter " + TITLE_LENGTH_LOW_WARN_THRESHOLD
|
||||
+ " Zeichen ist für die meisten Dokumente nicht empfohlen (aktuell: "
|
||||
"Titellänge unter 40 Zeichen – KI-Ergebnisse können unvollständig sein, "
|
||||
+ "da Absender allein bereits 15–20 Zeichen benötigt (aktuell: "
|
||||
+ value + ")."));
|
||||
return;
|
||||
}
|
||||
if (value >= TITLE_LENGTH_HIGH_WARN_THRESHOLD) {
|
||||
findings.add(EditorValidationFinding.warning(FIELD_MAX_TITLE_LENGTH,
|
||||
"Hohe Titellänge: Kompatibilität mit verschlüsselten Volumes prüfen "
|
||||
"Hohe Titellänge – Kompatibilität mit verschlüsselten Volumes prüfen "
|
||||
+ "(aktuell: " + value + ")."));
|
||||
}
|
||||
// 20–99: unkritisch, kein Befund
|
||||
// 40–99: unkritisch, kein Befund
|
||||
}
|
||||
|
||||
// =========================================================================
|
||||
|
||||
+17
-1
@@ -591,9 +591,25 @@ class EditorConfigurationValidatorTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
void validate_maxTitleLength_twenty_producesNoFinding() {
|
||||
void validate_maxTitleLength_twenty_producesWarning() {
|
||||
EditorValidationReport report = validator.validate(inputWithMaxTitleLength("20"));
|
||||
|
||||
assertThat(report.findingsFor(EditorConfigurationValidator.FIELD_MAX_TITLE_LENGTH))
|
||||
.anyMatch(f -> f.severity() == EditorValidationSeverity.WARNING);
|
||||
}
|
||||
|
||||
@Test
|
||||
void validate_maxTitleLength_thirtyNine_producesWarning() {
|
||||
EditorValidationReport report = validator.validate(inputWithMaxTitleLength("39"));
|
||||
|
||||
assertThat(report.findingsFor(EditorConfigurationValidator.FIELD_MAX_TITLE_LENGTH))
|
||||
.anyMatch(f -> f.severity() == EditorValidationSeverity.WARNING);
|
||||
}
|
||||
|
||||
@Test
|
||||
void validate_maxTitleLength_forty_producesNoFinding() {
|
||||
EditorValidationReport report = validator.validate(inputWithMaxTitleLength("40"));
|
||||
|
||||
assertThat(report.findingsFor(EditorConfigurationValidator.FIELD_MAX_TITLE_LENGTH))
|
||||
.isEmpty();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user