b211911f98
v2-ci / unit-tests (push) Failing after 13m22s
Akka.TestKit.Xunit2 -> Akka.TestKit.Xunit 1.5.62 (xunit.v3 TestKit; needs xunit.v3 3.2.2, set via VersionOverride on the four projects). Removes the xunit 2.9.3 pin. IAsyncLifetime returns ValueTask, SqlServerFactAttribute gains the source-info ctor, and xUnit1051 call sites pass TestContext.Current.CancellationToken. Test counts unchanged. Claude-Session: https://claude.ai/code/session_01GT67AEHd2Acv1YPwGfXEoV
52 lines
2.2 KiB
C#
52 lines
2.2 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using Shouldly;
|
|
using Xunit;
|
|
using ZB.MOM.WW.OtOpcUa.AdminUI.Clients;
|
|
using ZB.MOM.WW.OtOpcUa.Configuration;
|
|
using ZB.MOM.WW.OtOpcUa.Configuration.Entities;
|
|
|
|
namespace ZB.MOM.WW.OtOpcUa.AdminUI.Tests;
|
|
|
|
/// <summary>A-F4 / A-F5: <c>/fleet</c> links to the per-node diagnostics page, which shows authored names.</summary>
|
|
[Trait("Category", "Unit")]
|
|
public sealed class FleetDiagnosticsLinksTests
|
|
{
|
|
[Fact]
|
|
public void Link_escapes_the_node_id()
|
|
=> FleetDiagnosticsLinks.For("host-a:4053").ShouldBe("/fleet/diagnostics?node=host-a%3A4053");
|
|
|
|
[Fact]
|
|
public async Task Display_names_join_from_the_config_db_and_unknown_ids_are_absent()
|
|
{
|
|
var name = Guid.NewGuid().ToString("N");
|
|
var options = new DbContextOptionsBuilder<OtOpcUaConfigDbContext>().UseInMemoryDatabase(name).Options;
|
|
await using (var seed = new OtOpcUaConfigDbContext(options))
|
|
{
|
|
seed.DriverInstances.Add(new DriverInstance
|
|
{
|
|
DriverInstanceId = "drv-press-1", ClusterId = "MAIN", Name = "Press line Modbus",
|
|
DriverType = "Modbus", DriverConfig = "{}",
|
|
});
|
|
await seed.SaveChangesAsync(TestContext.Current.CancellationToken);
|
|
}
|
|
|
|
await using var db = new OtOpcUaConfigDbContext(options);
|
|
var names = await FleetDiagnosticsLinks.LoadDisplayNamesAsync(db, ["drv-press-1", "drv-unknown"], TestContext.Current.CancellationToken);
|
|
|
|
names["DRV-PRESS-1"].ShouldBe("Press line Modbus"); // the returned map is case-insensitive
|
|
names.ContainsKey("drv-unknown").ShouldBeFalse();
|
|
|
|
(await FleetDiagnosticsLinks.LoadDisplayNamesAsync(db, [], TestContext.Current.CancellationToken)).ShouldBeEmpty();
|
|
}
|
|
|
|
[Fact]
|
|
public void Fleet_rows_link_driver_nodes_and_the_page_uses_the_names()
|
|
{
|
|
AdminUiSource.Read("Components", "Pages", "Fleet.razor")
|
|
.ShouldContain("href=\"@FleetDiagnosticsLinks.For(r.NodeId)\"");
|
|
var diag = AdminUiSource.Read("Components", "Pages", "FleetDiagnostics.razor");
|
|
diag.ShouldContain("FleetDiagnosticsLinks.LoadDisplayNamesAsync(");
|
|
diag.ShouldContain("@DisplayNameOf(d)");
|
|
}
|
|
}
|