Implement Rolemaster roll execution
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
const { test, expect } = require("@playwright/test");
|
||||
|
||||
async function postJson(request, url, data) {
|
||||
const response = await request.post(url, { data });
|
||||
expect(response.ok()).toBeTruthy();
|
||||
return await response.json();
|
||||
}
|
||||
|
||||
test("home page loads auth entry points", async ({ page }) => {
|
||||
await page.goto("/");
|
||||
|
||||
@@ -9,3 +15,51 @@ test("home page loads auth entry points", async ({ page }) => {
|
||||
await expect(page.getByLabel("Username").first()).toBeVisible();
|
||||
await expect(page.getByLabel("Password").nth(1)).toBeVisible();
|
||||
});
|
||||
|
||||
test("Rolemaster open-ended roll detail renders specialized dice chips", async ({ page, context }) => {
|
||||
const username = `rm-${Date.now()}`;
|
||||
const displayName = "Rolemaster Smoke";
|
||||
|
||||
await postJson(context.request, "/api/auth/register", {
|
||||
username,
|
||||
password: "Password123",
|
||||
displayName
|
||||
});
|
||||
|
||||
const loginResponse = await context.request.post("/api/auth/login", {
|
||||
data: {
|
||||
username,
|
||||
password: "Password123"
|
||||
}
|
||||
});
|
||||
expect(loginResponse.ok()).toBeTruthy();
|
||||
|
||||
const campaign = await postJson(context.request, "/api/campaigns", {
|
||||
name: "Rolemaster Smoke",
|
||||
rulesetId: "rolemaster"
|
||||
});
|
||||
const character = await postJson(context.request, "/api/characters", {
|
||||
name: "Open Ender",
|
||||
campaignId: campaign.id
|
||||
});
|
||||
const skill = await postJson(context.request, `/api/characters/${character.id}/skills`, {
|
||||
name: "Open Sight",
|
||||
diceRollDefinition: "d100!+85",
|
||||
wildDice: 0,
|
||||
allowFumble: false,
|
||||
fumbleRange: 95
|
||||
});
|
||||
|
||||
await postJson(context.request, `/api/skills/${skill.id}/roll`, { visibility: "public" });
|
||||
|
||||
await page.goto("/");
|
||||
await expect(page.getByText("Campaign Log")).toBeVisible();
|
||||
|
||||
const logEntry = page.locator(".log-panel .log-entry-toggle").first();
|
||||
await expect(logEntry).toBeVisible();
|
||||
await logEntry.click();
|
||||
|
||||
const rolemasterFollowUpDice = page.locator(".die-chip.rolemaster-open-ended-high, .die-chip.rolemaster-open-ended-low-subtract");
|
||||
await expect(rolemasterFollowUpDice.first()).toBeVisible();
|
||||
await expect(page.locator(".log-detail .roll-dice-strip")).toBeVisible();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user