feat(adminui): add connection-health signal to in-process broadcaster + bridges

This commit is contained in:
Joseph Doherty
2026-06-11 09:20:36 -04:00
parent 565b77e6cf
commit 3a0e0907e4
4 changed files with 130 additions and 2 deletions
@@ -48,4 +48,52 @@ public sealed class InProcessBroadcasterTests
var broadcaster = new InProcessBroadcaster<int>();
Should.NotThrow(() => broadcaster.Publish(42));
}
[Fact]
public void New_broadcaster_is_not_connected()
{
var broadcaster = new InProcessBroadcaster<string>();
broadcaster.IsConnected.ShouldBeFalse();
}
[Fact]
public void SetConnected_true_flips_state_and_raises_once()
{
var broadcaster = new InProcessBroadcaster<string>();
var raised = new List<bool>();
broadcaster.ConnectionStateChanged += raised.Add;
broadcaster.SetConnected(true);
broadcaster.IsConnected.ShouldBeTrue();
raised.ShouldBe([true]);
}
[Fact]
public void SetConnected_same_value_does_not_raise()
{
var broadcaster = new InProcessBroadcaster<string>();
var raised = new List<bool>();
broadcaster.ConnectionStateChanged += raised.Add;
broadcaster.SetConnected(true);
broadcaster.SetConnected(true);
raised.ShouldBe([true]);
}
[Fact]
public void SetConnected_false_after_true_raises_false()
{
var broadcaster = new InProcessBroadcaster<string>();
var raised = new List<bool>();
broadcaster.ConnectionStateChanged += raised.Add;
broadcaster.SetConnected(true);
broadcaster.SetConnected(false);
broadcaster.IsConnected.ShouldBeFalse();
raised[^1].ShouldBeFalse();
}
}