From eead73050621f92ea41835aa71b1c34192b8755e Mon Sep 17 00:00:00 2001 From: Markus Hartung Date: Sat, 25 Jul 2026 16:18:45 +0200 Subject: [PATCH] fix(i18n,sidebar): add missing logsTimelineSubtitle + update sidebar tests Address maintainer feedback on #8354: - Add logsTimelineSubtitle key to en.json + 11 locales (ar, az, bg, bn, cs, da, de, es, fa, fi, fr) that were missing it - Add logs-timeline to sidebar-visibility.test.ts expected arrays - Add logs-timeline to sidebar-monitoring-reorg.test.ts logs group - Add compression-exclusions to sidebar-visibility.test.ts (pre-existing) --- src/i18n/messages/ar.json | 1 + src/i18n/messages/az.json | 1 + src/i18n/messages/bg.json | 1 + src/i18n/messages/bn.json | 1 + src/i18n/messages/cs.json | 1 + src/i18n/messages/da.json | 1 + src/i18n/messages/de.json | 1 + src/i18n/messages/en.json | 1 + src/i18n/messages/es.json | 1 + src/i18n/messages/fa.json | 1 + src/i18n/messages/fi.json | 1 + src/i18n/messages/fr.json | 1 + tests/unit/sidebar-monitoring-reorg.test.ts | 30 +++++++++++++-------- tests/unit/sidebar-visibility.test.ts | 1 + 14 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/i18n/messages/ar.json b/src/i18n/messages/ar.json index 5e6e5b216a..b159c8a597 100644 --- a/src/i18n/messages/ar.json +++ b/src/i18n/messages/ar.json @@ -1114,6 +1114,7 @@ "runtime": "وقت التشغيل", "consoleLogs": "سجلات وحدة التحكم", "logsTimeline": "Timeline", + "logsTimelineSubtitle": "Visual request timeline", "globalRouting": "التوجيه العام", "mitmProxy": "بروكسي MITM", "oneProxy": "1Proxy", diff --git a/src/i18n/messages/az.json b/src/i18n/messages/az.json index ca711fa060..9d6b55f3d9 100644 --- a/src/i18n/messages/az.json +++ b/src/i18n/messages/az.json @@ -1114,6 +1114,7 @@ "runtime": "İcra müddəti", "consoleLogs": "Konsol qeydləri", "logsTimeline": "Timeline", + "logsTimelineSubtitle": "Visual request timeline", "globalRouting": "Qlobal marşrutlaşdırma", "mitmProxy": "MITM Proksi", "oneProxy": "1 Proksi", diff --git a/src/i18n/messages/bg.json b/src/i18n/messages/bg.json index 36371da795..fa20fd92c9 100644 --- a/src/i18n/messages/bg.json +++ b/src/i18n/messages/bg.json @@ -1114,6 +1114,7 @@ "runtime": "Runtime", "consoleLogs": "Console Logs", "logsTimeline": "Timeline", + "logsTimelineSubtitle": "Visual request timeline", "globalRouting": "Global Routing", "mitmProxy": "MITM Proxy", "oneProxy": "1Proxy", diff --git a/src/i18n/messages/bn.json b/src/i18n/messages/bn.json index 51f6662b62..1c653fa473 100644 --- a/src/i18n/messages/bn.json +++ b/src/i18n/messages/bn.json @@ -1114,6 +1114,7 @@ "runtime": "Runtime", "consoleLogs": "Console Logs", "logsTimeline": "Timeline", + "logsTimelineSubtitle": "Visual request timeline", "globalRouting": "Global Routing", "mitmProxy": "MITM Proxy", "oneProxy": "1Proxy", diff --git a/src/i18n/messages/cs.json b/src/i18n/messages/cs.json index bc0426cf3e..f10ee15b46 100644 --- a/src/i18n/messages/cs.json +++ b/src/i18n/messages/cs.json @@ -1114,6 +1114,7 @@ "runtime": "Runtime", "consoleLogs": "Console Logs", "logsTimeline": "Timeline", + "logsTimelineSubtitle": "Visual request timeline", "globalRouting": "Global Routing", "mitmProxy": "MITM Proxy", "oneProxy": "1Proxy", diff --git a/src/i18n/messages/da.json b/src/i18n/messages/da.json index e82bfcebb7..79fbc67ac0 100644 --- a/src/i18n/messages/da.json +++ b/src/i18n/messages/da.json @@ -1114,6 +1114,7 @@ "runtime": "Runtime", "consoleLogs": "Console Logs", "logsTimeline": "Timeline", + "logsTimelineSubtitle": "Visual request timeline", "globalRouting": "Global Routing", "mitmProxy": "MITM Proxy", "oneProxy": "1Proxy", diff --git a/src/i18n/messages/de.json b/src/i18n/messages/de.json index 72a8235632..7648233308 100644 --- a/src/i18n/messages/de.json +++ b/src/i18n/messages/de.json @@ -1114,6 +1114,7 @@ "runtime": "Runtime", "consoleLogs": "Console Logs", "logsTimeline": "Timeline", + "logsTimelineSubtitle": "Visual request timeline", "globalRouting": "Global Routing", "mitmProxy": "MITM Proxy", "oneProxy": "1Proxy", diff --git a/src/i18n/messages/en.json b/src/i18n/messages/en.json index 7f8360d708..09766e5835 100644 --- a/src/i18n/messages/en.json +++ b/src/i18n/messages/en.json @@ -1114,6 +1114,7 @@ "runtime": "Runtime", "consoleLogs": "Console Logs", "logsTimeline": "Timeline", + "logsTimelineSubtitle": "Visual request timeline", "globalRouting": "Global Routing", "mitmProxy": "MITM Proxy", "oneProxy": "1Proxy", diff --git a/src/i18n/messages/es.json b/src/i18n/messages/es.json index daf6b279ba..4d65c4932f 100644 --- a/src/i18n/messages/es.json +++ b/src/i18n/messages/es.json @@ -1114,6 +1114,7 @@ "runtime": "Runtime", "consoleLogs": "Console Logs", "logsTimeline": "Timeline", + "logsTimelineSubtitle": "Visual request timeline", "globalRouting": "Global Routing", "mitmProxy": "MITM Proxy", "oneProxy": "1Proxy", diff --git a/src/i18n/messages/fa.json b/src/i18n/messages/fa.json index 252104ce5a..6a1910d2d9 100644 --- a/src/i18n/messages/fa.json +++ b/src/i18n/messages/fa.json @@ -1114,6 +1114,7 @@ "runtime": "Runtime", "consoleLogs": "Console Logs", "logsTimeline": "Timeline", + "logsTimelineSubtitle": "Visual request timeline", "globalRouting": "Global Routing", "mitmProxy": "MITM Proxy", "oneProxy": "1Proxy", diff --git a/src/i18n/messages/fi.json b/src/i18n/messages/fi.json index c3eb96dc81..e4a0fb6622 100644 --- a/src/i18n/messages/fi.json +++ b/src/i18n/messages/fi.json @@ -1114,6 +1114,7 @@ "runtime": "Runtime", "consoleLogs": "Console Logs", "logsTimeline": "Timeline", + "logsTimelineSubtitle": "Visual request timeline", "globalRouting": "Global Routing", "mitmProxy": "MITM Proxy", "oneProxy": "1Proxy", diff --git a/src/i18n/messages/fr.json b/src/i18n/messages/fr.json index 96d7090e7f..a2a58e7297 100644 --- a/src/i18n/messages/fr.json +++ b/src/i18n/messages/fr.json @@ -1114,6 +1114,7 @@ "runtime": "Runtime", "consoleLogs": "Console Logs", "logsTimeline": "Timeline", + "logsTimelineSubtitle": "Visual request timeline", "globalRouting": "Global Routing", "mitmProxy": "MITM Proxy", "oneProxy": "1Proxy", diff --git a/tests/unit/sidebar-monitoring-reorg.test.ts b/tests/unit/sidebar-monitoring-reorg.test.ts index 2a2e7e71d6..2f111d8ec8 100644 --- a/tests/unit/sidebar-monitoring-reorg.test.ts +++ b/tests/unit/sidebar-monitoring-reorg.test.ts @@ -22,7 +22,11 @@ test("monitoring section has exactly 4 children: 1 item (activity) + 3 groups (l // First child is the activity item (not a group) const first = children[0] as sidebarVisibility.SidebarItemDefinition; assert.ok(!("type" in first) || first.type !== "group", "first child must not be a group"); - assert.equal((first as sidebarVisibility.SidebarItemDefinition).id, "activity", "first child must be activity item"); + assert.equal( + (first as sidebarVisibility.SidebarItemDefinition).id, + "activity", + "first child must be activity item" + ); // Remaining 3 children are groups const groups = children.slice(1); @@ -31,7 +35,11 @@ test("monitoring section has exactly 4 children: 1 item (activity) + 3 groups (l } const groupIds = groups.map((g) => (g as sidebarVisibility.SidebarItemGroup).id); - assert.deepEqual(groupIds, ["logs", "audit", "system"], "group ids must be logs, audit, system in order"); + assert.deepEqual( + groupIds, + ["logs", "audit", "system"], + "group ids must be logs, audit, system in order" + ); }); test("getSectionItems of monitoring does NOT contain logs-activity", () => { @@ -44,7 +52,7 @@ test("getSectionItems of monitoring does NOT contain logs-activity", () => { assert.equal( itemIds.includes("logs-activity" as sidebarVisibility.HideableSidebarItemId), false, - "logs-activity must not be in monitoring section items", + "logs-activity must not be in monitoring section items" ); }); @@ -59,7 +67,7 @@ test("monitoring section does NOT have a group with id costs-parameters", () => assert.equal( groupIds.includes("costs-parameters"), false, - "costs-parameters group must not exist in monitoring", + "costs-parameters group must not exist in monitoring" ); }); @@ -67,9 +75,7 @@ test("monitoring section activity item has correct href and icon", () => { const section = findSection("monitoring"); assert.ok(section, "monitoring section must exist"); - const activityItem = sidebarVisibility - .getSectionItems(section) - .find((i) => i.id === "activity"); + const activityItem = sidebarVisibility.getSectionItems(section).find((i) => i.id === "activity"); assert.ok(activityItem, "activity item must be in monitoring section"); assert.equal(activityItem.href, "/dashboard/activity"); @@ -77,17 +83,18 @@ test("monitoring section activity item has correct href and icon", () => { assert.equal(activityItem.i18nKey, "activity"); }); -test("monitoring logs group contains logs, logs-proxy, logs-console", () => { +test("monitoring logs group contains logs, logs-proxy, logs-console, logs-timeline", () => { const section = findSection("monitoring"); assert.ok(section, "monitoring section must exist"); const logsGroup = section.children.find( - (c): c is sidebarVisibility.SidebarItemGroup => "type" in c && c.type === "group" && c.id === "logs", + (c): c is sidebarVisibility.SidebarItemGroup => + "type" in c && c.type === "group" && c.id === "logs" ); assert.ok(logsGroup, "logs group must exist in monitoring"); const itemIds = logsGroup.items.map((i) => i.id); - assert.deepEqual(itemIds, ["logs", "logs-proxy", "logs-console"]); + assert.deepEqual(itemIds, ["logs", "logs-proxy", "logs-console", "logs-timeline"]); }); test("monitoring system group contains health and runtime", () => { @@ -95,7 +102,8 @@ test("monitoring system group contains health and runtime", () => { assert.ok(section, "monitoring section must exist"); const systemGroup = section.children.find( - (c): c is sidebarVisibility.SidebarItemGroup => "type" in c && c.type === "group" && c.id === "system", + (c): c is sidebarVisibility.SidebarItemGroup => + "type" in c && c.type === "group" && c.id === "system" ); assert.ok(systemGroup, "system group must exist in monitoring"); diff --git a/tests/unit/sidebar-visibility.test.ts b/tests/unit/sidebar-visibility.test.ts index a1771999ba..c5fb36e38a 100644 --- a/tests/unit/sidebar-visibility.test.ts +++ b/tests/unit/sidebar-visibility.test.ts @@ -23,6 +23,7 @@ test("system sidebar items: monitoring has activity at top then logs/audit/syste "logs", "logs-proxy", "logs-console", + "logs-timeline", "audit", "audit-mcp", "audit-a2a",