docs(centralui): refresh stale test summaries + drop redundant modal-lg

This commit is contained in:
Joseph Doherty
2026-05-22 02:03:36 -04:00
parent 35cef4ad1b
commit d4a7344f89
5 changed files with 21 additions and 16 deletions

View File

@@ -1,12 +1,12 @@
{ {
"planPath": "docs/plans/2026-05-22-execution-tree-node-modal.md", "planPath": "docs/plans/2026-05-22-execution-tree-node-modal.md",
"tasks": [ "tasks": [
{"id": 0, "subject": "Task 0: Prep — verify branch + baseline", "status": "pending"}, {"id": 0, "subject": "Task 0: Prep — verify branch + baseline", "status": "completed"},
{"id": 1, "subject": "Task 1: Extract AuditEventDetail from AuditDrilldownDrawer", "status": "pending", "blockedBy": [0]}, {"id": 1, "subject": "Task 1: Extract AuditEventDetail from AuditDrilldownDrawer", "status": "completed", "blockedBy": [0]},
{"id": 2, "subject": "Task 2: ExecutionTree node double-click raises OnNodeActivated", "status": "pending", "blockedBy": [0]}, {"id": 2, "subject": "Task 2: ExecutionTree node double-click raises OnNodeActivated", "status": "completed", "blockedBy": [0]},
{"id": 3, "subject": "Task 3: ExecutionDetailModal component", "status": "pending", "blockedBy": [1]}, {"id": 3, "subject": "Task 3: ExecutionDetailModal component", "status": "completed", "blockedBy": [1]},
{"id": 4, "subject": "Task 4: Wire ExecutionDetailModal into ExecutionTreePage", "status": "pending", "blockedBy": [2, 3]}, {"id": 4, "subject": "Task 4: Wire ExecutionDetailModal into ExecutionTreePage", "status": "completed", "blockedBy": [2, 3]},
{"id": 5, "subject": "Task 5: E2E Playwright test + docs", "status": "pending", "blockedBy": [4]} {"id": 5, "subject": "Task 5: E2E Playwright test + docs", "status": "completed", "blockedBy": [4]}
], ],
"lastUpdated": "2026-05-22" "lastUpdated": "2026-05-22"
} }

View File

@@ -16,7 +16,7 @@
data-test="execution-detail-modal" role="dialog" data-test="execution-detail-modal" role="dialog"
aria-modal="true" aria-labelledby="execution-detail-modal-title" aria-modal="true" aria-labelledby="execution-detail-modal-title"
@onkeydown="HandleKeyDown"> @onkeydown="HandleKeyDown">
<div class="modal-dialog modal-lg modal-dialog-scrollable" role="document"> <div class="modal-dialog modal-dialog-scrollable" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<div> <div>

View File

@@ -31,6 +31,9 @@ namespace ScadaLink.CentralUI.PlaywrightTests.Audit;
/// drawer's "View parent execution" action on a spawned (child) row drills in /// drawer's "View parent execution" action on a spawned (child) row drills in
/// to <c>?executionId={ParentExecutionId}</c>, auto-loading the spawner's /// to <c>?executionId={ParentExecutionId}</c>, auto-loading the spawner's
/// rows.</item> /// rows.</item>
/// <item><c>DoubleClickTreeNode_OpensExecutionRowModal</c> — double-clicking a
/// node on the execution-tree page opens <c>ExecutionDetailModal</c>, walking
/// list → row → detail before closing.</item>
/// <item><c>NotificationsPage_HasViewAuditHistoryLink_WhenNotificationsExist</c> — /// <item><c>NotificationsPage_HasViewAuditHistoryLink_WhenNotificationsExist</c> —
/// the report page wires drill-in links when notifications are present.</item> /// the report page wires drill-in links when notifications are present.</item>
/// <item><c>ExportCsv_LinkIsVisibleAndDownloads</c> — Export CSV button gated on /// <item><c>ExportCsv_LinkIsVisibleAndDownloads</c> — Export CSV button gated on

View File

@@ -12,15 +12,15 @@ namespace ScadaLink.CentralUI.Tests.Components.Audit;
/// bUnit tests for <see cref="AuditDrilldownDrawer"/> (#23 M7 Bundle C / M7-T4..T8). /// bUnit tests for <see cref="AuditDrilldownDrawer"/> (#23 M7 Bundle C / M7-T4..T8).
/// ///
/// The drawer is a child component opened from the Audit Log page when a grid row /// The drawer is a child component opened from the Audit Log page when a grid row
/// is clicked. It renders the full <see cref="AuditEvent"/> read-only, with /// is clicked. It renders the offcanvas chrome (header, open/close) and delegates
/// channel-aware bodies (JSON pretty-print, SQL block for DbOutbound), /// the <see cref="AuditEvent"/> body to the shared <see cref="AuditEventDetail"/>
/// redaction badges on Request/Response, and conditional action buttons: /// component, which since the recent refactor owns the channel-aware bodies
/// "Copy as cURL" (API channels only) + "Show all events for this operation" /// (JSON pretty-print, SQL block for DbOutbound), redaction badges on
/// (when CorrelationId is set). /// Request/Response, and conditional action buttons.
/// ///
/// Tests pin the behaviours we cannot lose without breaking the spec: /// Tests pin the behaviours we cannot lose without breaking the spec:
/// field rendering, JSON pretty-printing, SQL render block, conditional button /// offcanvas open/close, header rendering, and that the event body is handed
/// visibility, navigation drill-back, redaction badges, and clipboard interop. /// off to <see cref="AuditEventDetail"/>.
/// </summary> /// </summary>
public class AuditDrilldownDrawerTests : BunitContext public class AuditDrilldownDrawerTests : BunitContext
{ {

View File

@@ -11,8 +11,10 @@ namespace ScadaLink.CentralUI.Tests.Components.Audit;
/// into a tree by joining <see cref="ExecutionTreeNode.ParentExecutionId"/> to a /// into a tree by joining <see cref="ExecutionTreeNode.ParentExecutionId"/> to a
/// parent node's <see cref="ExecutionTreeNode.ExecutionId"/>, and renders it /// parent node's <see cref="ExecutionTreeNode.ExecutionId"/>, and renders it
/// recursively. Tests pin: single-node tree, multi-level assembly, stub-node /// recursively. Tests pin: single-node tree, multi-level assembly, stub-node
/// presentation, the arrived-from highlight, node-click navigation, and /// presentation, the arrived-from highlight, node-click navigation, node
/// cycle-safety (a corrupt flat list must not infinite-loop). /// double-click raising/bubbling <see cref="ExecutionTreeNode.ExecutionId"/> via
/// <c>OnNodeActivated</c>, and cycle-safety (a corrupt flat list must not
/// infinite-loop).
/// </summary> /// </summary>
public class ExecutionTreeTests : BunitContext public class ExecutionTreeTests : BunitContext
{ {