test(ui): failing bUnit tests for OpcUaEndpointEditor
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
using Bunit;
|
||||
using ScadaLink.Commons.Types.DataConnections;
|
||||
using ScadaLink.Commons.Types.Flattening;
|
||||
using ScadaLink.Commons.Validators;
|
||||
using OpcUaEndpointEditor = ScadaLink.CentralUI.Components.Forms.OpcUaEndpointEditor;
|
||||
|
||||
namespace ScadaLink.CentralUI.Tests.Forms;
|
||||
|
||||
public class OpcUaEndpointEditorTests : BunitContext
|
||||
{
|
||||
[Fact]
|
||||
public void Renders_All_Four_Section_Labels()
|
||||
{
|
||||
var config = new OpcUaEndpointConfig();
|
||||
var cut = Render<OpcUaEndpointEditor>(p => p
|
||||
.Add(c => c.Config, config)
|
||||
.Add(c => c.Title, "Primary Endpoint"));
|
||||
|
||||
Assert.Contains("Primary Endpoint", cut.Markup);
|
||||
Assert.Contains("Timing", cut.Markup);
|
||||
Assert.Contains("Subscription", cut.Markup);
|
||||
Assert.Contains("Heartbeat", cut.Markup);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Binding_MutatesPassedConfigInstance()
|
||||
{
|
||||
var config = new OpcUaEndpointConfig();
|
||||
var cut = Render<OpcUaEndpointEditor>(p => p.Add(c => c.Config, config));
|
||||
|
||||
cut.Find("input[type='text']").Change("opc.tcp://new-host:4840");
|
||||
|
||||
Assert.Equal("opc.tcp://new-host:4840", config.EndpointUrl);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EnableHeartbeat_CreatesSubObject()
|
||||
{
|
||||
var config = new OpcUaEndpointConfig();
|
||||
var cut = Render<OpcUaEndpointEditor>(p => p.Add(c => c.Config, config));
|
||||
|
||||
Assert.Null(config.Heartbeat);
|
||||
cut.FindAll("button").First(b => b.TextContent.Contains("Enable Heartbeat")).Click();
|
||||
|
||||
Assert.NotNull(config.Heartbeat);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void RemoveHeartbeat_NullsSubObject()
|
||||
{
|
||||
var config = new OpcUaEndpointConfig
|
||||
{
|
||||
Heartbeat = new OpcUaHeartbeatConfig { TagPath = "Hb", MaxSilenceSeconds = 30 }
|
||||
};
|
||||
var cut = Render<OpcUaEndpointEditor>(p => p.Add(c => c.Config, config));
|
||||
|
||||
cut.FindAll("button").First(b => b.TextContent.Contains("Remove Heartbeat")).Click();
|
||||
|
||||
Assert.Null(config.Heartbeat);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Errors_Parameter_RendersPerFieldRedText()
|
||||
{
|
||||
var config = new OpcUaEndpointConfig { EndpointUrl = "" };
|
||||
var errors = OpcUaEndpointConfigValidator.Validate(config, "Primary.");
|
||||
var cut = Render<OpcUaEndpointEditor>(p => p
|
||||
.Add(c => c.Config, config)
|
||||
.Add(c => c.Errors, errors));
|
||||
|
||||
Assert.Contains("Endpoint URL is required.", cut.Markup);
|
||||
Assert.Contains("text-danger", cut.Markup);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void IsLegacy_True_RendersWarningBanner()
|
||||
{
|
||||
var cut = Render<OpcUaEndpointEditor>(p => p
|
||||
.Add(c => c.Config, new OpcUaEndpointConfig())
|
||||
.Add(c => c.IsLegacy, true));
|
||||
|
||||
Assert.Contains("alert-warning", cut.Markup);
|
||||
Assert.Contains("migrated from a legacy format", cut.Markup);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user