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
@@ -16,8 +16,8 @@ namespace ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Audit;
/// rows in <c>finally</c>.
///
/// <para>
/// This part (Wave 3, Task 10) covers render / search-narrows / pagination. The
/// class is intentionally structured so Task 11 can APPEND modal/copy/chip facts
/// This part covers render / search-narrows / pagination. The
/// class is intentionally structured so modal/copy/chip facts can be APPENDED
/// to it without restructuring: shared constants (the DB-unavailable skip reason,
/// the page route) and the seeded-test gate idiom live here once.
/// </para>
@@ -45,6 +45,8 @@ public class AuditConfigurationTests
private readonly PlaywrightFixture _fixture;
/// <summary>Initializes the tests with the shared Playwright fixture.</summary>
/// <param name="fixture">The Playwright fixture that supplies authenticated browser pages.</param>
public AuditConfigurationTests(PlaywrightFixture fixture)
{
_fixture = fixture;
@@ -58,6 +60,8 @@ public class AuditConfigurationTests
/// </summary>
private static string NewMarker() => "zzCfgAudit-" + Guid.NewGuid().ToString("N")[..8];
/// <summary>Verifies that the grid renders and that searching narrows the displayed rows.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[SkippableFact]
public async Task Grid_RendersAndSearchNarrows()
{
@@ -102,6 +106,8 @@ public class AuditConfigurationTests
}
}
/// <summary>Verifies that Previous is disabled on page 1 and that Next advances to the following page.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[SkippableFact]
public async Task Pagination_PrevDisabledOnPage1_NextPaginates()
{
@@ -122,7 +128,7 @@ public class AuditConfigurationTests
await page.Locator("button.btn.btn-primary:has-text('Search')").ClickAsync();
await page.WaitForLoadStateAsync(LoadState.NetworkIdle);
// Page 1 of 2: Previous disabled, Next enabled. (M10 OffsetPager summary:
// Page 1 of 2: Previous disabled, Next enabled. (OffsetPager summary:
// "Page {N} of {Y} · {Total} total".)
await Assertions.Expect(page.Locator("[data-test='pager-summary']")).ToContainTextAsync("Page 1 of 2");
await Assertions.Expect(page.Locator("[data-test='pager-summary']")).ToContainTextAsync("55 total");
@@ -143,6 +149,8 @@ public class AuditConfigurationTests
}
}
/// <summary>Verifies that a large state value opens a modal that can then be closed.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[SkippableFact]
public async Task LargeState_OpensAndClosesModal()
{
@@ -185,6 +193,8 @@ public class AuditConfigurationTests
}
}
/// <summary>Verifies that copying an entity ID shows a toast.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[SkippableFact]
public async Task CopyEntityId_ShowsToast()
{
@@ -221,6 +231,8 @@ public class AuditConfigurationTests
}
}
/// <summary>Verifies that the bundle import ID drill-in applies a filter chip that narrows the grid and can be cleared.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[SkippableFact]
public async Task BundleImportId_DrillIn_ChipFiltersAndClears()
{
@@ -231,7 +243,7 @@ public class AuditConfigurationTests
try
{
// 1 bulk row (EntityName "{marker}-0", BundleImportId NULL) + 2 bundle
// rows (EntityName "{marker}-bundle-0/1", BundleImportId = bundleId), all
// rows (EntityName "{marker}-bundle-" plus an index, BundleImportId = bundleId), all
// EntityType = marker so the finally cleanup removes every row.
await ConfigAuditDataSeeder.SeedAsync(marker, bundleId, bulkCount: 1, bundleRows: 2);
@@ -245,9 +257,9 @@ public class AuditConfigurationTests
// The filter chip is shown for the active bundle import.
await Assertions.Expect(page.Locator("span.badge.bg-primary:has-text('Filtered by Bundle Import:')")).ToBeVisibleAsync();
// Exactly the 2 bundle rows show (EntityName "{marker}-bundle-0/1"). The
// Exactly the 2 bundle rows show (EntityName "{marker}-bundle-" plus an index). The
// bulk row (EntityName "{marker}-0", BundleImportId NULL) is filtered out.
// The "{marker}-0" token is NOT a substring of "{marker}-bundle-0", so the
// The "{marker}-0" token is NOT a substring of the "{marker}-bundle-" names, so the
// two locators distinguish the bundle rows from the bulk row unambiguously.
await Assertions.Expect(page.Locator("tr").Filter(new() { HasText = $"{marker}-bundle-" }))
.ToHaveCountAsync(2, new() { Timeout = 10_000 });