docs(tests): fix CommentChecker findings across tests/ — 13,392 → 0 (repo-wide scan clean)

Comment/XML-doc changes only:
- add summaries to ~10k test methods, fixtures, fakes and helpers
  (+ <param> on theories, <returns> on async Task methods,
  <inheritdoc/> on interface implementations the checker can resolve)
- strip ~2.6k project-tracking references (WP*, P*-*, row-NN, Task N,
  #NN, Component-0NN) from comments, keeping the explanatory text;
  reword false positives in comments only
- real docs on fakes implementing BCL/library interfaces
  (IDisposable, ILogger, IOptionsMonitor, IAsyncLifetime)
- reword the last 5 src/ false positives (CWE-1236, failures-1,
  year-0001, M365)

Only non-comment edits: four one-line nested classes split across lines
so members can carry docs. Build 0 errors / 0 warnings.
This commit is contained in:
Joseph Doherty
2026-10-07 15:05:49 -04:00
parent 0ffd4bdbea
commit 513fa1aa16
998 changed files with 17896 additions and 2395 deletions
@@ -4,7 +4,7 @@ using ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Cluster;
namespace ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Audit;
/// <summary>
/// End-to-end coverage for the central Audit Log surface (#23 M7-T16 / Bundle H).
/// End-to-end coverage for the central Audit Log surface (Bundle H).
///
/// <para>
/// Each test seeds its own <c>AuditLog</c> rows directly into the running cluster's
@@ -15,7 +15,7 @@ namespace ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Audit;
/// </para>
///
/// <para>
/// Scenarios covered (per the M7-T16 brief):
/// Scenarios covered (per the brief):
/// <list type="bullet">
/// <item><c>FilterNarrowing</c> — the channel filter narrows the results grid.</item>
/// <item><c>DrilldownDrawer_JsonPrettyPrint</c> — JSON request bodies pretty-print.</item>
@@ -50,11 +50,15 @@ public class AuditLogPageTests
{
private readonly PlaywrightFixture _fixture;
/// <summary>Initializes the test class with the shared Playwright fixture.</summary>
/// <param name="fixture">The shared Playwright fixture.</param>
public AuditLogPageTests(PlaywrightFixture fixture)
{
_fixture = fixture;
}
/// <summary>Verifies that applying a channel filter shrinks the results grid.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[SkippableFact]
public async Task FilterNarrowing_ChannelFilterShrinksGrid()
{
@@ -112,6 +116,8 @@ public class AuditLogPageTests
}
}
/// <summary>Verifies that combining a channel filter with a target filter narrows the grid to the matching row.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[SkippableFact]
public async Task FilterCombination_ChannelPlusTarget_NarrowsToMatch()
{
@@ -172,6 +178,8 @@ public class AuditLogPageTests
}
}
/// <summary>Verifies that applying a filter with no matches shows the empty state.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[SkippableFact]
public async Task EmptyResults_AfterApply_ShowsEmptyState()
{
@@ -195,6 +203,8 @@ public class AuditLogPageTests
.ToContainTextAsync("No audit events match the current filter.");
}
/// <summary>Verifies that the drilldown drawer pretty-prints a JSON request body.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[SkippableFact]
public async Task DrilldownDrawer_JsonPrettyPrintsRequestBody()
{
@@ -257,6 +267,8 @@ public class AuditLogPageTests
}
}
/// <summary>Verifies that the copy-as-curl button is visible and clickable for an inbound API row.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[SkippableFact]
public async Task CopyAsCurlButton_IsVisibleAndClickableForApiInbound()
{
@@ -309,6 +321,8 @@ public class AuditLogPageTests
}
}
/// <summary>Verifies that drilling in from a correlation id lands on the Audit Log with the filter applied.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[SkippableFact]
public async Task DrillInFromCorrelationId_LandsOnAuditLogWithFilterContext()
{
@@ -366,6 +380,8 @@ public class AuditLogPageTests
}
}
/// <summary>Verifies that drilling in from an execution id lands on the Audit Log with the filter applied.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[SkippableFact]
public async Task DrillInFromExecutionId_LandsOnAuditLogWithFilterContext()
{
@@ -421,6 +437,8 @@ public class AuditLogPageTests
}
}
/// <summary>Verifies that drilling in from a parent execution filters the grid to the spawner execution.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[SkippableFact]
public async Task DrillInFromParentExecution_FiltersGridToSpawnerExecution()
{
@@ -498,12 +516,14 @@ public class AuditLogPageTests
}
}
/// <summary>Verifies that drilling into the execution chain renders the tree and that clicking a node filters the grid.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[SkippableFact]
public async Task DrillInToExecutionChain_RendersTree_AndNodeClickFiltersGrid()
{
Skip.IfNot(await ClusterAvailability.IsAvailableAsync(), ClusterAvailability.SkipReason);
// Audit Log ParentExecutionId feature, Task 10: the drawer's "View
// Audit Log ParentExecutionId feature: the drawer's "View
// execution chain" action opens /audit/execution-tree?executionId={id}.
// We seed a spawner row + a child row, open the child's drawer, click
// "View execution chain", assert the tree renders BOTH executions, then
@@ -577,12 +597,14 @@ public class AuditLogPageTests
}
}
/// <summary>Verifies that double-clicking a tree node opens the execution row modal.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[SkippableFact]
public async Task DoubleClickTreeNode_OpensExecutionRowModal()
{
Skip.IfNot(await ClusterAvailability.IsAvailableAsync(), ClusterAvailability.SkipReason);
// Execution-Tree Node Detail Modal feature, Task 5: double-clicking a
// Execution-Tree Node Detail Modal feature: double-clicking a
// node on the /audit/execution-tree page opens ExecutionDetailModal —
// a modal listing that execution's audit rows, with click-through to
// each row's full <AuditEventDetail> view. We seed ONE execution with
@@ -678,6 +700,8 @@ public class AuditLogPageTests
}
}
/// <summary>Verifies that the Notifications page renders the audit drill-in link pattern.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task NotificationsPage_RendersAuditDrillInLinkPattern()
{
@@ -712,6 +736,8 @@ public class AuditLogPageTests
// all we can assert without exercising the Akka query path to seed one.
}
/// <summary>Verifies that the CSV export link is visible to a user with audit export permission and triggers a download.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task ExportCsv_LinkVisibleForAuditExportUserAndTriggersDownload()
{
@@ -742,6 +768,8 @@ public class AuditLogPageTests
Assert.EndsWith(".csv", download.SuggestedFilename);
}
/// <summary>Verifies that a Designer without the operational audit permission is denied access.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task PermissionGating_DesignerWithoutOperationalAudit_IsDeniedAccess()
{
@@ -766,6 +794,8 @@ public class AuditLogPageTests
Assert.Equal(0, await page.Locator("[data-test='audit-results-grid']").CountAsync());
}
/// <summary>Verifies that the drawer for a non-API row omits the copy-as-curl button.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[SkippableFact]
public async Task NonApiRow_Drawer_OmitsCopyAsCurl()
{
@@ -821,6 +851,8 @@ public class AuditLogPageTests
}
}
/// <summary>Verifies that the drawer's close controls dismiss the drawer.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[SkippableFact]
public async Task Drawer_CloseControls_DismissTheDrawer()
{