mirror of
https://github.com/RedWizardsLab/EchoHub.git
synced 2026-09-06 07:36:01 +02:00
feat: enhance IRC support with display name handling, private channel tracking, and connection identification
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using EchoHub.Core.Constants;
|
||||
using EchoHub.Server.Services;
|
||||
using Xunit;
|
||||
|
||||
@@ -65,4 +66,48 @@ public class PresenceTrackerTests
|
||||
Assert.Contains("general", channels);
|
||||
Assert.Contains("random", channels);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void IsIrcOnly_AllConnectionsIrc_ReturnsTrue()
|
||||
{
|
||||
var tracker = new PresenceTracker();
|
||||
tracker.UserConnected($"{HubConstants.IrcConnectionIdPrefix}conn1", Guid.NewGuid(), "alice");
|
||||
Assert.True(tracker.IsIrcOnly("alice"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void IsIrcOnly_NativeConnection_ReturnsFalse()
|
||||
{
|
||||
var tracker = new PresenceTracker();
|
||||
tracker.UserConnected("conn1", Guid.NewGuid(), "alice");
|
||||
Assert.False(tracker.IsIrcOnly("alice"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void IsIrcOnly_MixedConnections_ReturnsFalse()
|
||||
{
|
||||
var tracker = new PresenceTracker();
|
||||
var userId = Guid.NewGuid();
|
||||
tracker.UserConnected($"{HubConstants.IrcConnectionIdPrefix}conn1", userId, "alice");
|
||||
tracker.UserConnected("conn2", userId, "alice");
|
||||
Assert.False(tracker.IsIrcOnly("alice"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void IsIrcOnly_OfflineUser_ReturnsFalse()
|
||||
{
|
||||
var tracker = new PresenceTracker();
|
||||
Assert.False(tracker.IsIrcOnly("nobody"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void IsIrcOnly_NativeConnectionDisconnects_BecomesTrue()
|
||||
{
|
||||
var tracker = new PresenceTracker();
|
||||
var userId = Guid.NewGuid();
|
||||
tracker.UserConnected($"{HubConstants.IrcConnectionIdPrefix}conn1", userId, "alice");
|
||||
tracker.UserConnected("conn2", userId, "alice");
|
||||
tracker.UserDisconnected("conn2");
|
||||
Assert.True(tracker.IsIrcOnly("alice"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user