Apply shared ticket activity capability to overview rows

This commit is contained in:
Meik
2026-07-20 08:55:15 +02:00
parent 4ed75c6e82
commit 30cc7a0482
6 changed files with 40 additions and 29 deletions

View File

@@ -111,13 +111,13 @@ public class TicketOverviewUpdateServiceTest
}
[Fact]
public async Task FetchAsync_ServiceRequestsCapability_IsSeparatedFromCounts()
public async Task FetchAsync_TicketAndServiceRequestsCapability_IsSeparatedFromCounts()
{
// Arrange
var communication = new FakeCommunication();
communication.SetCounts(TileScope.Personal, new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase)
{
["ServiceRequestsEnabled"] = 1,
["TicketAndServiceRequestsEnabled"] = 1,
["ServiceRequestsNew"] = 2
});
communication.SetCounts(TileScope.Role, new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase)
@@ -127,18 +127,27 @@ public class TicketOverviewUpdateServiceTest
var service = CreateService(communication, out _);
var availabilityChanges = 0;
service.ServiceRequestsAvailabilityChanged += (_, _) => availabilityChanges++;
service.TicketAndServiceRequestsAvailabilityChanged += (_, _) => availabilityChanges++;
// Act
service.UpdateAvailability(true);
await WaitUntilAsync(() => service.AreAllScopesInitialized);
// Assert
Assert.True(service.ServiceRequestsEnabled);
Assert.True(service.TicketAndServiceRequestsEnabled);
Assert.Equal(1, availabilityChanges);
Assert.Equal(2, service.CurrentCounts["ServiceRequestsNew"].Personal);
Assert.Equal(4, service.CurrentCounts["ServiceRequestsNew"].Role);
Assert.DoesNotContain("ServiceRequestsEnabled", service.CurrentCounts.Keys);
Assert.DoesNotContain("TicketAndServiceRequestsEnabled", service.CurrentCounts.Keys);
communication.SetCounts(TileScope.Personal, new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase)
{
["ServiceRequestsNew"] = 3
});
await service.FetchAsync(TileScope.Personal);
Assert.False(service.TicketAndServiceRequestsEnabled);
Assert.Equal(2, availabilityChanges);
}
private static TicketOverviewUpdateService CreateService(FakeCommunication communication, out FakeDispatcher dispatcher)