feat: md样式优化
All checks were successful
缓存序列化结构检查 / cache-schema-check (push) Has been skipped

This commit is contained in:
2026-07-14 16:22:05 +08:00
parent cab3fea666
commit 6e06cbf5b5
3 changed files with 62 additions and 30 deletions

View File

@@ -71,23 +71,25 @@ class ReportBuilderTest {
String oldPart = md.substring(oldSection, newSection);
String newPart = md.substring(newSection);
// 旧骨架:无 warning,且不能整段被反引号包裹
// 旧骨架:无染色,且不能整段被反引号包裹
assertFalse(oldPart.contains("<font color=\"warning\">"));
assertFalse(oldPart.contains("<font color=\"info\">"));
assertFalse(oldPart.contains("`" + oldJson + "`"));
assertTrue(oldPart.contains(oldJson));
// 新骨架:新增字段带 warning,其余明文
assertTrue(newPart.contains("<font color=\"warning\">\"message\":\"\"</font>"));
assertTrue(newPart.contains("<font color=\"warning\">\"lastError\":\"\"</font>"));
// 新骨架:新增字段绿色 info,其余明文
assertTrue(newPart.contains("<font color=\"info\">\"message\":\"\"</font>"));
assertTrue(newPart.contains("<font color=\"info\">\"lastError\":\"\"</font>"));
assertTrue(newPart.contains("\"taskId\":\"\""));
assertFalse(newPart.contains("<font color=\"warning\">\"taskId\":\"\"</font>"));
assertFalse(newPart.contains("<font color=\"info\">\"taskId\":\"\"</font>"));
assertFalse(newPart.contains("<font color=\"warning\">"));
// 禁止整段代码块
assertFalse(newPart.contains("`" + newJson));
assertFalse(md.contains("### P0"));
}
@Test
void removedFieldsHighlightedOnlyInOldSkeleton() {
void removedFieldsHighlightedOrangeInOldSkeleton() {
SchemaChange removed = new SchemaChange(ChangeType.FIELD_REMOVED);
removed.setFieldPath("lastError");
removed.setMessage("删除字段 lastError");
@@ -100,10 +102,11 @@ class ReportBuilderTest {
assertEquals(Collections.singleton("lastError"), oldPaths);
assertTrue(newPaths.isEmpty());
String oldMd = SkeletonAnnotator.annotateForWecom(oldJson, oldPaths);
String newMd = SkeletonAnnotator.annotateForWecom(newJson, newPaths);
String oldMd = SkeletonAnnotator.annotateOldForWecom(oldJson, oldPaths);
String newMd = SkeletonAnnotator.annotateNewForWecom(newJson, newPaths);
assertTrue(oldMd.contains("<font color=\"warning\">\"lastError\":\"\"</font>"));
assertFalse(oldMd.contains("<font color=\"warning\">\"taskId\":\"\"</font>"));
assertFalse(oldMd.contains("<font color=\"info\">"));
assertEquals(newJson, newMd);
assertFalse(newMd.startsWith("`"));
}
@@ -134,6 +137,7 @@ class ReportBuilderTest {
assertTrue(console.contains("======== 字段明细 ========"));
assertTrue(console.contains("**删除字段**: x"));
assertTrue(console.contains("<font color=\"warning\">\"x\":\"\"</font>"));
assertFalse(console.contains("<font color=\"info\">\"x\":\"\"</font>"));
assertTrue(console.contains("> **位置**: `"));
assertTrue(console.contains("> **类型**: `"));
assertTrue(console.contains("> **value值由**"));
@@ -169,9 +173,10 @@ class ReportBuilderTest {
String json = "{\"vo\":{\"dbName\":\"\",\"id\":\"\"},\"expiresAtMs\":0}";
Set<String> paths = new LinkedHashSet<>();
paths.add("vo.dbName");
String out = SkeletonAnnotator.annotate(json, paths);
assertTrue(out.contains("<font color=\"warning\">\"dbName\":\"\"</font>"));
assertFalse(out.contains("<font color=\"warning\">\"id\":\"\"</font>"));
String out = SkeletonAnnotator.annotate(json, paths, SkeletonAnnotator.COLOR_ADD);
assertTrue(out.contains("<font color=\"info\">\"dbName\":\"\"</font>"));
assertFalse(out.contains("<font color=\"info\">\"id\":\"\"</font>"));
assertFalse(out.contains("<font color=\"warning\">\"dbName\":\"\"</font>"));
}
@Test