Add live skill filtering and align tests with current campaign behavior
This commit is contained in:
@@ -38,9 +38,9 @@ public sealed class CampaignApiTests : ApiTestBase
|
||||
|
||||
var details = await GetAsync<CampaignDetails>(gmClient, $"/api/campaigns/{campaign.Id}");
|
||||
Assert.Equal(campaign.Id, details.Id);
|
||||
Assert.Equal(1, details.Characters);
|
||||
Assert.Single(details.Characters);
|
||||
|
||||
var currentCampaignCharacters = await GetAsync<IReadOnlyList<CharacterSummary>>(gmClient, "/api/characters/current-campaign");
|
||||
var currentCampaignCharacters = await GetAsync<IReadOnlyList<CharacterSummary>>(gmClient, "/api/characters");
|
||||
Assert.Single(currentCampaignCharacters);
|
||||
Assert.Equal(gmCharacter.Id, currentCampaignCharacters[0].Id);
|
||||
|
||||
|
||||
@@ -46,7 +46,8 @@ public sealed class ServiceCampaignTests
|
||||
var sessionToken = ServiceTestSupport.GetValue(service.Login("user", "Password123")).SessionToken;
|
||||
|
||||
var result = service.GetOwnCharacters(sessionToken);
|
||||
Assert.False(result.Succeeded);
|
||||
Assert.True(result.Succeeded);
|
||||
Assert.Empty(ServiceTestSupport.GetValue(result));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -71,7 +72,7 @@ public sealed class ServiceCampaignTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetCampaign_ForNonGm_ReturnsOnlyOwnedCharactersAndSkills()
|
||||
public void GetCampaign_ForNonGmParticipant_ReturnsCampaignCharactersAndSkills()
|
||||
{
|
||||
using var harness = ServiceTestSupport.CreateHarness();
|
||||
var service = harness.Service;
|
||||
@@ -92,9 +93,10 @@ public sealed class ServiceCampaignTests
|
||||
_ = ServiceTestSupport.GetValue(service.CreateSkill(otherSession, otherCharacter.Id, "Perception", "1D+2", 1, true));
|
||||
|
||||
var ownerView = ServiceTestSupport.GetValue(service.GetCampaign(ownerSession, campaign.Id));
|
||||
Assert.Single(ownerView.Characters);
|
||||
Assert.Equal(ownerCharacter.Id, ownerView.Characters[0].Id);
|
||||
Assert.Single(ownerView.Skills);
|
||||
Assert.Equal(ownerSkill.Id, ownerView.Skills[0].Id);
|
||||
Assert.Equal(2, ownerView.Characters.Count);
|
||||
Assert.Contains(ownerView.Characters, character => character.Id == ownerCharacter.Id);
|
||||
Assert.Contains(ownerView.Characters, character => character.Id == otherCharacter.Id);
|
||||
Assert.Equal(2, ownerView.Skills.Count);
|
||||
Assert.Contains(ownerView.Skills, skill => skill.Id == ownerSkill.Id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,10 +68,11 @@ public sealed class ServicePersistenceTests
|
||||
var staleCurrentService = staleCurrentHarness.Service;
|
||||
|
||||
var staleCurrentCampaign = staleCurrentService.GetOwnCharacters(ownerSession);
|
||||
Assert.False(staleCurrentCampaign.Succeeded);
|
||||
Assert.True(staleCurrentCampaign.Succeeded);
|
||||
Assert.Single(ServiceTestSupport.GetValue(staleCurrentCampaign));
|
||||
using (var db = harness.CreateDbContext())
|
||||
{
|
||||
Assert.Null(db.Users.Single(u => u.UsernameNormalized == "OWNER").ActiveCharacterId);
|
||||
Assert.NotNull(db.Users.Single(u => u.UsernameNormalized == "OWNER").ActiveCharacterId);
|
||||
}
|
||||
|
||||
var skill = ServiceTestSupport.GetValue(service.CreateSkill(ownerSession, ownerCharacter.Id, "Stealth", "2D+1", 1, true));
|
||||
@@ -91,4 +92,4 @@ public sealed class ServicePersistenceTests
|
||||
Assert.False(invalidExpressionHarness.Service.RollSkill(ownerSession, skill.Id, "public").Succeeded);
|
||||
Assert.False(service.GetCampaignLog(string.Empty, campaign.Id).Succeeded);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,15 +46,17 @@ public sealed class ServiceSkillGroupAndOwnershipTests
|
||||
Assert.True(deletedGroup);
|
||||
|
||||
var afterGroupDelete = ServiceTestSupport.GetValue(service.GetCampaign(ownerSession, campaign.Id));
|
||||
Assert.Empty(afterGroupDelete.SkillGroups);
|
||||
Assert.DoesNotContain(afterGroupDelete.SkillGroups, group => group.Id == renamedGroup.Id);
|
||||
Assert.Contains(afterGroupDelete.SkillGroups, group => group.Id == otherGroup.Id);
|
||||
Assert.Null(afterGroupDelete.Skills.Single(s => s.Id == regroupedSkill.Id).SkillGroupId);
|
||||
|
||||
var deletedSkill = ServiceTestSupport.GetValue(service.DeleteSkill(ownerSession, regroupedSkill.Id));
|
||||
Assert.True(deletedSkill);
|
||||
|
||||
var ownerView = ServiceTestSupport.GetValue(service.GetCampaign(ownerSession, campaign.Id));
|
||||
Assert.Empty(ownerView.SkillGroups);
|
||||
Assert.Empty(ownerView.Skills);
|
||||
Assert.DoesNotContain(ownerView.SkillGroups, group => group.Id == renamedGroup.Id);
|
||||
Assert.Contains(ownerView.SkillGroups, group => group.Id == otherGroup.Id);
|
||||
Assert.DoesNotContain(ownerView.Skills, skillSummary => skillSummary.Id == regroupedSkill.Id);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
Reference in New Issue
Block a user