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:
+12
-2
@@ -5,7 +5,7 @@ namespace ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Notifications;
|
||||
|
||||
/// <summary>
|
||||
/// End-to-end coverage for the central Notification Report page's Retry / Discard
|
||||
/// actions on parked notifications (Notification Outbox #21).
|
||||
/// actions on parked notifications (Notification Outbox).
|
||||
///
|
||||
/// <para>
|
||||
/// Each test seeds its own <c>Parked</c> row directly into the running cluster's
|
||||
@@ -34,6 +34,8 @@ public class NotificationActionTests
|
||||
|
||||
private readonly PlaywrightFixture _fixture;
|
||||
|
||||
/// <summary>Initializes the test class with the shared Playwright fixture.</summary>
|
||||
/// <param name="fixture">The shared Playwright fixture.</param>
|
||||
public NotificationActionTests(PlaywrightFixture fixture)
|
||||
{
|
||||
_fixture = fixture;
|
||||
@@ -94,6 +96,8 @@ public class NotificationActionTests
|
||||
return (page, row);
|
||||
}
|
||||
|
||||
/// <summary>Verifies that retrying a parked notification shows an outcome toast.</summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[SkippableFact]
|
||||
public async Task Retry_ParkedNotification_ShowsOutcomeToast()
|
||||
{
|
||||
@@ -133,6 +137,8 @@ public class NotificationActionTests
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>Verifies that discarding a parked notification shows an outcome toast.</summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[SkippableFact]
|
||||
public async Task Discard_ParkedNotification_ShowsOutcomeToast()
|
||||
{
|
||||
@@ -179,6 +185,7 @@ public class NotificationActionTests
|
||||
/// than widening — the marker isolates the pair from ambient cluster rows, and the
|
||||
/// subject keyword discriminates between them.
|
||||
/// </summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[SkippableFact]
|
||||
public async Task FilterCombination_StatusPlusList_NarrowsToMatch()
|
||||
{
|
||||
@@ -237,6 +244,7 @@ public class NotificationActionTests
|
||||
/// close affordances are wired to the same <c>CloseDetail</c> handler; this exercises
|
||||
/// each path independently (open → X-close → reopen → footer-close).
|
||||
/// </summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[SkippableFact]
|
||||
public async Task DetailModal_OpenOnDblClick_CloseViaXAndFooter()
|
||||
{
|
||||
@@ -308,6 +316,7 @@ public class NotificationActionTests
|
||||
/// docker cluster carries no override — so a Retrying row back-dated 15 min passes both
|
||||
/// the repository's StuckOnly SQL predicate and the page's <c>IsStuck</c> derivation.
|
||||
/// </summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[SkippableFact]
|
||||
public async Task StuckOnlyFilter_NarrowsToStuckRows()
|
||||
{
|
||||
@@ -384,6 +393,7 @@ public class NotificationActionTests
|
||||
/// disables both pager buttons — so the button-state assertions never race the in-flight
|
||||
/// query.
|
||||
/// </summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[SkippableFact]
|
||||
public async Task Pagination_PageNumberNextAndPrev_TraversesPages()
|
||||
{
|
||||
@@ -413,7 +423,7 @@ public class NotificationActionTests
|
||||
await page.Locator("button.btn-primary:has-text('Query')").ClickAsync();
|
||||
await page.WaitForLoadStateAsync(LoadState.NetworkIdle);
|
||||
|
||||
// Pager locators (M10 OffsetPager). Previous/Next are the pager's data-test
|
||||
// Pager locators (OffsetPager). Previous/Next are the pager's data-test
|
||||
// hooks (the page header's Refresh button is also a .btn-outline-secondary.btn-sm,
|
||||
// so we no longer scope by text). The summary span carries the page/total readout
|
||||
// ("Page {N} of {Y} · {Total} total").
|
||||
|
||||
+8
-2
@@ -4,8 +4,7 @@ using ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Cluster;
|
||||
namespace ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Notifications;
|
||||
|
||||
/// <summary>
|
||||
/// Direct-SQL seeding helper for the Notification Report page Playwright E2E tests
|
||||
/// (Notification Outbox #21).
|
||||
/// Direct-SQL seeding helper for the Notification Report page Playwright E2E tests.
|
||||
///
|
||||
/// <para>
|
||||
/// The Notification Report page reads the central <c>Notifications</c> table through the
|
||||
@@ -74,6 +73,7 @@ internal static class NotificationDataSeeder
|
||||
/// <param name="retryCount">Retry count to display on the row.</param>
|
||||
/// <param name="lastError">Optional last-error text shown beneath the subject.</param>
|
||||
/// <param name="ct">Cancellation token.</param>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
public static async Task InsertNotificationAsync(
|
||||
Guid notificationId,
|
||||
string listNameMarker,
|
||||
@@ -132,6 +132,7 @@ VALUES
|
||||
/// <param name="retryCount">Retry count to display on the row.</param>
|
||||
/// <param name="lastError">Optional last-error text shown beneath the subject.</param>
|
||||
/// <param name="ct">Cancellation token.</param>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
public static Task InsertParkedNotificationAsync(
|
||||
Guid notificationId,
|
||||
string listNameMarker,
|
||||
@@ -152,6 +153,9 @@ VALUES
|
||||
/// to <c>Pending</c> (and a subsequent dispatch sweep) does not change the <c>ListName</c>,
|
||||
/// so the marker still matches whatever terminal state the row ends in.
|
||||
/// </summary>
|
||||
/// <param name="listNameMarker">Unique per-run marker stored in <c>ListName</c>.</param>
|
||||
/// <param name="ct">Cancellation token.</param>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
public static async Task DeleteByMarkerAsync(string listNameMarker, CancellationToken ct = default)
|
||||
{
|
||||
try
|
||||
@@ -175,6 +179,8 @@ VALUES
|
||||
/// this so a downed cluster surfaces a clear message rather than an opaque
|
||||
/// <see cref="SqlException"/>.
|
||||
/// </summary>
|
||||
/// <param name="ct">Cancellation token.</param>
|
||||
/// <returns><c>true</c> if a connection could be opened; otherwise <c>false</c>.</returns>
|
||||
public static async Task<bool> IsAvailableAsync(CancellationToken ct = default)
|
||||
{
|
||||
try
|
||||
|
||||
+4
@@ -22,6 +22,8 @@ public class NotificationKpisTests
|
||||
|
||||
private readonly PlaywrightFixture _pw;
|
||||
|
||||
/// <summary>Initializes the test class with the shared Playwright fixture.</summary>
|
||||
/// <param name="pw">The shared Playwright fixture.</param>
|
||||
public NotificationKpisTests(PlaywrightFixture pw)
|
||||
{
|
||||
_pw = pw;
|
||||
@@ -32,6 +34,7 @@ public class NotificationKpisTests
|
||||
/// real state — EITHER all 5 KPI tile labels rendered OR the 'KPIs unavailable'
|
||||
/// alert is shown.
|
||||
/// </summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[SkippableFact]
|
||||
public async Task KpisPage_RendersTilesOrError()
|
||||
{
|
||||
@@ -62,6 +65,7 @@ public class NotificationKpisTests
|
||||
/// that the button re-enables within 10 s — proving the refresh round-trip completed
|
||||
/// without hanging.
|
||||
/// </summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[SkippableFact]
|
||||
public async Task KpisPage_RefreshReenables()
|
||||
{
|
||||
|
||||
+4
@@ -23,6 +23,8 @@ public class NotificationListCrudTests
|
||||
|
||||
private readonly PlaywrightFixture _pw;
|
||||
|
||||
/// <summary>Creates the test class with the shared Playwright fixture.</summary>
|
||||
/// <param name="pw">The shared Playwright fixture.</param>
|
||||
public NotificationListCrudTests(PlaywrightFixture pw)
|
||||
{
|
||||
_pw = pw;
|
||||
@@ -33,6 +35,7 @@ public class NotificationListCrudTests
|
||||
/// open it for edit, add a recipient, remove that recipient, then delete the list —
|
||||
/// asserting the delete confirm dialog, the success toast, and the row disappearing.
|
||||
/// </summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[SkippableFact]
|
||||
public async Task Create_AddRecipient_RemoveRecipient_Delete_RoundTrips()
|
||||
{
|
||||
@@ -124,6 +127,7 @@ public class NotificationListCrudTests
|
||||
/// Submits the create form with a blank name and asserts the inline 'Name required.'
|
||||
/// validation error appears and the page does not navigate away. Mutates nothing.
|
||||
/// </summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[SkippableFact]
|
||||
public async Task CreateForm_EmptyName_ShowsInlineError()
|
||||
{
|
||||
|
||||
+5
@@ -50,6 +50,8 @@ public class SmsNotificationE2ETests
|
||||
|
||||
private readonly PlaywrightFixture _pw;
|
||||
|
||||
/// <summary>Initializes the tests with the shared Playwright fixture.</summary>
|
||||
/// <param name="pw">The shared Playwright browser fixture.</param>
|
||||
public SmsNotificationE2ETests(PlaywrightFixture pw)
|
||||
{
|
||||
_pw = pw;
|
||||
@@ -74,6 +76,7 @@ public class SmsNotificationE2ETests
|
||||
/// fills, and never raise the saved toast — all of which are asserted with web-first waits.
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[SkippableFact]
|
||||
public async Task SmsConfigPage_CreateOrRender_NeverLeaksAuthToken()
|
||||
{
|
||||
@@ -141,6 +144,7 @@ public class SmsNotificationE2ETests
|
||||
/// phone recipient and assert the row appears. Best-effort CLI teardown in <c>finally</c>.
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[SkippableFact]
|
||||
public async Task ListCreate_SmsType_ShowsPhoneInput_NotEmail()
|
||||
{
|
||||
@@ -208,6 +212,7 @@ public class SmsNotificationE2ETests
|
||||
/// the list page, and scopes the assertion to that list's row so it cannot match another
|
||||
/// list's Type cell. Best-effort CLI teardown in <c>finally</c>.
|
||||
/// </summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[SkippableFact]
|
||||
public async Task ListCreate_SmsType_ShowsSmsInTypeColumn()
|
||||
{
|
||||
|
||||
@@ -40,6 +40,8 @@ public class SmtpConfigTests
|
||||
|
||||
private readonly PlaywrightFixture _pw;
|
||||
|
||||
/// <summary>Initializes a new instance of the <see cref="SmtpConfigTests"/> class.</summary>
|
||||
/// <param name="pw">The shared Playwright fixture.</param>
|
||||
public SmtpConfigTests(PlaywrightFixture pw)
|
||||
{
|
||||
_pw = pw;
|
||||
@@ -51,6 +53,7 @@ public class SmtpConfigTests
|
||||
/// The page's <c>Save</c> handler returns at this guard BEFORE persisting, so this fact
|
||||
/// mutates nothing. Then it cancels and asserts the form closed.
|
||||
/// </summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[SkippableFact]
|
||||
public async Task SmtpForm_MissingRequired_ShowsInlineError()
|
||||
{
|
||||
@@ -95,6 +98,7 @@ public class SmtpConfigTests
|
||||
/// card (Credentials value '(stored)' or '(not set)') is present, OR the empty-state
|
||||
/// 'No SMTP configuration set.' text is shown. Pure-read; mutates nothing.
|
||||
/// </summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[SkippableFact]
|
||||
public async Task SmtpPage_RendersConfigOrEmptyState()
|
||||
{
|
||||
@@ -130,6 +134,7 @@ public class SmtpConfigTests
|
||||
/// skips (SMTP config has no delete verb, so we never create one we could not delete).
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <returns>A task that represents the asynchronous operation.</returns>
|
||||
[SkippableFact]
|
||||
public async Task SmtpEdit_NoopSave_ShowsSavedToast()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user