mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-03-21 18:04:39 -05:00
73 lines
2.4 KiB
TypeScript
73 lines
2.4 KiB
TypeScript
import { expect, navigate, selectWeapon, test } from "~/utils/playwright";
|
|
import { OBJECT_DAMAGE_CALCULATOR_URL } from "~/utils/urls";
|
|
|
|
test.describe("Object Damage Calculator", () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await navigate({ page, url: OBJECT_DAMAGE_CALCULATOR_URL });
|
|
});
|
|
|
|
const cellId = (id: string, damageReceiver = "Chariot") =>
|
|
`${id}-${damageReceiver}`;
|
|
|
|
test("operates damage type select, max damage > min damage", async ({
|
|
page,
|
|
}) => {
|
|
const hp = page.getByTestId(cellId("hp"));
|
|
const dmg = page.getByTestId(cellId("dmg"));
|
|
const htd = page.getByTestId(cellId("htd"));
|
|
|
|
const hpBefore = (await hp.textContent())!;
|
|
const dmgBefore = (await dmg.textContent())!;
|
|
const htdBefore = (await htd.textContent())!;
|
|
|
|
// test hits to destroy calculation
|
|
expect(Number(htdBefore)).toBe(
|
|
Math.ceil(Number(hpBefore) / Number(dmgBefore)),
|
|
);
|
|
|
|
await page.locator("text=Damage type").selectOption("NORMAL_MIN");
|
|
|
|
// select did what we expect it to do
|
|
await expect(hp).toHaveText(hpBefore);
|
|
await expect(dmg).not.toHaveText(dmgBefore);
|
|
await expect(htd).not.toHaveText(htdBefore);
|
|
});
|
|
|
|
test("changes weapon and saves it to url", async ({ page }) => {
|
|
const dmg = page.getByTestId(cellId("dmg"));
|
|
const dmgBefore = (await dmg.textContent())!;
|
|
|
|
await selectWeapon({ page, name: "Luna Blaster" });
|
|
|
|
await expect(dmg).not.toHaveText(dmgBefore);
|
|
await page.reload();
|
|
await expect(dmg).not.toHaveText(dmgBefore);
|
|
});
|
|
|
|
test("multiplier switch increases damage", async ({ page }) => {
|
|
await selectWeapon({ page, name: "Tri-Stringer" });
|
|
|
|
const dmg = page.getByTestId(cellId("dmg"));
|
|
const dmgBefore = (await dmg.textContent())!;
|
|
await page.getByTestId("multi-switch").click();
|
|
|
|
// Multiplier is on by default
|
|
await expect(dmg).not.toHaveText(dmgBefore);
|
|
});
|
|
|
|
test("object hp increases when ability points added", async ({ page }) => {
|
|
const crabTankHp = page.getByTestId(cellId("hp"));
|
|
const crabTankHpBefore = (await crabTankHp.textContent())!;
|
|
|
|
const splashWallHp = page.getByTestId(cellId("hp", "Wsb_Shield"));
|
|
const splashWallHpBefore = (await splashWallHp.textContent())!;
|
|
|
|
await page.locator("text=Amount of").selectOption("10");
|
|
|
|
// Crab Tank doesn't gain HP from ability points
|
|
await expect(crabTankHp).toHaveText(crabTankHpBefore);
|
|
// ... but Splash Wall does
|
|
await expect(splashWallHp).not.toHaveText(splashWallHpBefore);
|
|
});
|
|
});
|