Improve campaign log roll cards

This commit is contained in:
2026-04-03 22:58:55 +02:00
parent 9581442cab
commit b26d58cea4
12 changed files with 353 additions and 36 deletions

View File

@@ -148,6 +148,44 @@ public sealed class ServiceSkillRollTests
Assert.Equal(rollIds[^1], gapPage.Cursor);
}
[Fact]
public void CampaignLogPage_BuildsD6AndDndSpecialEventBadges()
{
using var harness = ServiceTestSupport.CreateHarness(6, 4, 6, 6, 2, 20, 1);
var service = harness.Service;
service.Register("gm-special", "Password123", "GM");
service.Register("owner-special", "Password123", "Owner");
var gmSession = ServiceTestSupport.GetValue(service.Login("gm-special", "Password123")).SessionToken;
var ownerSession = ServiceTestSupport.GetValue(service.Login("owner-special", "Password123")).SessionToken;
var d6Campaign = ServiceTestSupport.GetValue(service.CreateCampaign(gmSession, "D6 Special", "d6"));
var d6Character = ServiceTestSupport.GetValue(service.CreateCharacter(ownerSession, "Wild Hero", d6Campaign.Id));
var d6Skill = ServiceTestSupport.GetValue(service.CreateSkill(ownerSession, d6Character.Id, "Stealth", "2D+1", 1, true));
_ = ServiceTestSupport.GetValue(service.RollSkill(ownerSession, d6Skill.Id, "public"));
var d6Entry = Assert.Single(ServiceTestSupport.GetValue(service.GetCampaignLogPage(gmSession, d6Campaign.Id, limit: 5)).Entries);
var d6Badges = Assert.IsType<string[]>(d6Entry.EventBadges);
Assert.Equal("w6", Assert.Single(d6Badges));
Assert.Equal("6, 4, 6, ...", d6Entry.SummaryText);
var dndCampaign = ServiceTestSupport.GetValue(service.CreateCampaign(gmSession, "Dnd Special", "dnd5e"));
var dndCharacter = ServiceTestSupport.GetValue(service.CreateCharacter(ownerSession, "Natural Hero", dndCampaign.Id));
var dndSkill = ServiceTestSupport.GetValue(service.CreateSkill(ownerSession, dndCharacter.Id, "Attack", "1d20+5", 0, false));
_ = ServiceTestSupport.GetValue(service.RollSkill(ownerSession, dndSkill.Id, "public"));
_ = ServiceTestSupport.GetValue(service.RollSkill(ownerSession, dndSkill.Id, "public"));
var dndEntries = ServiceTestSupport.GetValue(service.GetCampaignLogPage(gmSession, dndCampaign.Id, limit: 5)).Entries;
var firstDndBadges = Assert.IsType<string[]>(dndEntries[0].EventBadges);
Assert.Equal("n20", Assert.Single(firstDndBadges));
Assert.Equal("20", dndEntries[0].SummaryText);
var secondDndBadges = Assert.IsType<string[]>(dndEntries[1].EventBadges);
Assert.Equal("n1", Assert.Single(secondDndBadges));
Assert.Equal("1", dndEntries[1].SummaryText);
}
[Fact]
public void RollDetail_ReturnsVisibleDetailAndHidesPrivateRoll()
{