Add skill-group prototypes, delete flows, and per-group skill creation UX
This commit is contained in:
@@ -73,9 +73,12 @@ public sealed class CampaignApiTests : ApiTestBase
|
||||
var campaign = await PostAsync<CreateCampaignRequest, CampaignSummary>(gmClient, "/api/campaigns", new("Grouped Campaign", "d6"));
|
||||
var character = await PostAsync<CreateCharacterRequest, CharacterSummary>(ownerClient, "/api/characters", new("Grouped Hero", campaign.Id));
|
||||
|
||||
var createdGroup = await PostAsync<CreateSkillGroupRequest, SkillGroupSummary>(ownerClient, $"/api/characters/{character.Id}/skill-groups", new("Combat"));
|
||||
var renamedGroup = await PutAsync<UpdateSkillGroupRequest, SkillGroupSummary>(gmClient, $"/api/skill-groups/{createdGroup.Id}", new("Battle"));
|
||||
var createdGroup = await PostAsync<CreateSkillGroupRequest, SkillGroupSummary>(ownerClient, $"/api/characters/{character.Id}/skill-groups", new("Combat", "2D+1", 1, true));
|
||||
var renamedGroup = await PutAsync<UpdateSkillGroupRequest, SkillGroupSummary>(gmClient, $"/api/skill-groups/{createdGroup.Id}", new("Battle", "3D+2", 2, false));
|
||||
Assert.Equal("Battle", renamedGroup.Name);
|
||||
Assert.Equal("3D+2", renamedGroup.DiceRollDefinition);
|
||||
Assert.Equal(2, renamedGroup.WildDice);
|
||||
Assert.False(renamedGroup.AllowFumble);
|
||||
|
||||
var groupedSkill = await PostAsync<CreateSkillRequest, SkillSummary>(ownerClient, $"/api/characters/{character.Id}/skills", new("Strike", "2D+1", 1, true, renamedGroup.Id));
|
||||
Assert.Equal(renamedGroup.Id, groupedSkill.SkillGroupId);
|
||||
@@ -83,6 +86,15 @@ public sealed class CampaignApiTests : ApiTestBase
|
||||
var ungroupedSkill = await PutAsync<UpdateSkillRequest, SkillSummary>(ownerClient, $"/api/skills/{groupedSkill.Id}", new("Strike", "2D+1", 1, true, null));
|
||||
Assert.Null(ungroupedSkill.SkillGroupId);
|
||||
|
||||
var groupedAgainSkill = await PutAsync<UpdateSkillRequest, SkillSummary>(ownerClient, $"/api/skills/{groupedSkill.Id}", new("Strike", "2D+1", 1, true, renamedGroup.Id));
|
||||
Assert.Equal(renamedGroup.Id, groupedAgainSkill.SkillGroupId);
|
||||
|
||||
var deleteSkill = await ownerClient.DeleteAsync($"/api/skills/{groupedAgainSkill.Id}");
|
||||
Assert.Equal(HttpStatusCode.OK, deleteSkill.StatusCode);
|
||||
|
||||
var deleteGroup = await ownerClient.DeleteAsync($"/api/skill-groups/{renamedGroup.Id}");
|
||||
Assert.Equal(HttpStatusCode.OK, deleteGroup.StatusCode);
|
||||
|
||||
var transferResult = await PutAsync<UpdateCharacterRequest, CharacterSummary>(gmClient, $"/api/characters/{character.Id}", new("Grouped Hero", campaign.Id, "receiver2"));
|
||||
Assert.Equal("Grouped Hero", transferResult.Name);
|
||||
|
||||
@@ -93,6 +105,6 @@ public sealed class CampaignApiTests : ApiTestBase
|
||||
Assert.Equal(HttpStatusCode.OK, receiverActivate.StatusCode);
|
||||
|
||||
var details = await GetAsync<CampaignDetails>(gmClient, $"/api/campaigns/{campaign.Id}");
|
||||
Assert.Contains(details.SkillGroups, group => group.Id == renamedGroup.Id);
|
||||
Assert.DoesNotContain(details.SkillGroups, group => group.Id == renamedGroup.Id);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user