test(e2e): unify toast assertion + extract shared PlaywrightDbConnection (review cleanups)
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using Microsoft.Data.SqlClient;
|
using Microsoft.Data.SqlClient;
|
||||||
|
using ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Cluster;
|
||||||
|
|
||||||
namespace ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Audit;
|
namespace ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Audit;
|
||||||
|
|
||||||
@@ -33,24 +34,11 @@ namespace ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Audit;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
internal static class AuditDataSeeder
|
internal static class AuditDataSeeder
|
||||||
{
|
{
|
||||||
private const string DefaultConnectionString =
|
|
||||||
"Server=localhost,1433;Database=ScadaBridgeConfig;User Id=scadabridge_app;Password=ScadaBridge_Dev1#;TrustServerCertificate=true;Encrypt=false;Connect Timeout=5";
|
|
||||||
|
|
||||||
private const string EnvVar = "SCADABRIDGE_PLAYWRIGHT_DB";
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Connection string for the running cluster's configuration DB. Resolved
|
/// Connection string for the running cluster's configuration DB.
|
||||||
/// from <c>SCADABRIDGE_PLAYWRIGHT_DB</c> when set, otherwise the local docker
|
/// Delegates to <see cref="PlaywrightDbConnection.ConnectionString"/>.
|
||||||
/// dev defaults.
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string ConnectionString
|
public static string ConnectionString => PlaywrightDbConnection.ConnectionString;
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var fromEnv = Environment.GetEnvironmentVariable(EnvVar);
|
|
||||||
return string.IsNullOrWhiteSpace(fromEnv) ? DefaultConnectionString : fromEnv;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Inserts a single audit row into the canonical <c>AuditLog</c> table. After the
|
/// Inserts a single audit row into the canonical <c>AuditLog</c> table. After the
|
||||||
|
|||||||
+35
@@ -0,0 +1,35 @@
|
|||||||
|
namespace ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Cluster;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Single source of truth for the dev-cluster database credential used by the
|
||||||
|
/// Playwright E2E suite.
|
||||||
|
///
|
||||||
|
/// <para>
|
||||||
|
/// The connection string mirrors the Docker cluster's <c>scadabridge_app</c>
|
||||||
|
/// account from <c>docker/central-node-a/appsettings.Central.json</c>, with the
|
||||||
|
/// host pointed at the host-exposed port (<c>localhost:1433</c>). The
|
||||||
|
/// <c>SCADABRIDGE_PLAYWRIGHT_DB</c> environment variable lets CI override the
|
||||||
|
/// connection without recompiling.
|
||||||
|
/// </para>
|
||||||
|
/// </summary>
|
||||||
|
internal static class PlaywrightDbConnection
|
||||||
|
{
|
||||||
|
private const string DefaultConnectionString =
|
||||||
|
"Server=localhost,1433;Database=ScadaBridgeConfig;User Id=scadabridge_app;Password=ScadaBridge_Dev1#;TrustServerCertificate=true;Encrypt=false;Connect Timeout=5";
|
||||||
|
|
||||||
|
private const string EnvVar = "SCADABRIDGE_PLAYWRIGHT_DB";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Connection string for the running cluster's configuration DB. Resolved
|
||||||
|
/// from <c>SCADABRIDGE_PLAYWRIGHT_DB</c> when set (non-whitespace), otherwise
|
||||||
|
/// the local docker dev defaults.
|
||||||
|
/// </summary>
|
||||||
|
public static string ConnectionString
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var fromEnv = Environment.GetEnvironmentVariable(EnvVar);
|
||||||
|
return string.IsNullOrWhiteSpace(fromEnv) ? DefaultConnectionString : fromEnv;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+4
-15
@@ -1,4 +1,5 @@
|
|||||||
using Microsoft.Data.SqlClient;
|
using Microsoft.Data.SqlClient;
|
||||||
|
using ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Cluster;
|
||||||
|
|
||||||
namespace ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Notifications;
|
namespace ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Notifications;
|
||||||
|
|
||||||
@@ -30,23 +31,11 @@ namespace ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Notifications;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
internal static class NotificationDataSeeder
|
internal static class NotificationDataSeeder
|
||||||
{
|
{
|
||||||
private const string DefaultConnectionString =
|
|
||||||
"Server=localhost,1433;Database=ScadaBridgeConfig;User Id=scadabridge_app;Password=ScadaBridge_Dev1#;TrustServerCertificate=true;Encrypt=false;Connect Timeout=5";
|
|
||||||
|
|
||||||
private const string EnvVar = "SCADABRIDGE_PLAYWRIGHT_DB";
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Connection string for the running cluster's configuration DB. Resolved from
|
/// Connection string for the running cluster's configuration DB.
|
||||||
/// <c>SCADABRIDGE_PLAYWRIGHT_DB</c> when set, otherwise the local docker dev defaults.
|
/// Delegates to <see cref="PlaywrightDbConnection.ConnectionString"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string ConnectionString
|
public static string ConnectionString => PlaywrightDbConnection.ConnectionString;
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var fromEnv = Environment.GetEnvironmentVariable(EnvVar);
|
|
||||||
return string.IsNullOrWhiteSpace(fromEnv) ? DefaultConnectionString : fromEnv;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Inserts a single <c>Parked</c> row into the central <c>Notifications</c> table.
|
/// Inserts a single <c>Parked</c> row into the central <c>Notifications</c> table.
|
||||||
|
|||||||
+4
-16
@@ -1,4 +1,5 @@
|
|||||||
using Microsoft.Data.SqlClient;
|
using Microsoft.Data.SqlClient;
|
||||||
|
using ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.Cluster;
|
||||||
|
|
||||||
namespace ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.SiteCalls;
|
namespace ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.SiteCalls;
|
||||||
|
|
||||||
@@ -25,24 +26,11 @@ namespace ZB.MOM.WW.ScadaBridge.CentralUI.PlaywrightTests.SiteCalls;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
internal static class SiteCallDataSeeder
|
internal static class SiteCallDataSeeder
|
||||||
{
|
{
|
||||||
private const string DefaultConnectionString =
|
|
||||||
"Server=localhost,1433;Database=ScadaBridgeConfig;User Id=scadabridge_app;Password=ScadaBridge_Dev1#;TrustServerCertificate=true;Encrypt=false;Connect Timeout=5";
|
|
||||||
|
|
||||||
private const string EnvVar = "SCADABRIDGE_PLAYWRIGHT_DB";
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Connection string for the running cluster's configuration DB. Resolved
|
/// Connection string for the running cluster's configuration DB.
|
||||||
/// from <c>SCADABRIDGE_PLAYWRIGHT_DB</c> when set, otherwise the local docker
|
/// Delegates to <see cref="PlaywrightDbConnection.ConnectionString"/>.
|
||||||
/// dev defaults.
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string ConnectionString
|
public static string ConnectionString => PlaywrightDbConnection.ConnectionString;
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var fromEnv = Environment.GetEnvironmentVariable(EnvVar);
|
|
||||||
return string.IsNullOrWhiteSpace(fromEnv) ? DefaultConnectionString : fromEnv;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Inserts a single row into the central <c>SiteCalls</c> table. Optional
|
/// Inserts a single row into the central <c>SiteCalls</c> table. Optional
|
||||||
|
|||||||
+2
-4
@@ -320,10 +320,8 @@ public class SiteCallsPageTests
|
|||||||
// path can sit on the 10s inner relay timeout before the response —
|
// path can sit on the 10s inner relay timeout before the response —
|
||||||
// and the toast itself auto-dismisses 5s after it appears, so the
|
// and the toast itself auto-dismisses 5s after it appears, so the
|
||||||
// assertion must catch it inside that window.
|
// assertion must catch it inside that window.
|
||||||
var toast = page.Locator(".toast");
|
await Assertions.Expect(page.Locator(".toast")).ToHaveCountAsync(
|
||||||
await Assertions.Expect(toast).ToBeVisibleAsync(
|
1, new() { Timeout = 15_000 });
|
||||||
new() { Timeout = 15_000 });
|
|
||||||
Assert.Equal(1, await toast.CountAsync());
|
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user