mirror of
https://github.com/Ku6epXBOCTuK/easy-png-tools.git
synced 2026-09-14 21:46:35 +00:00
49 lines
2.2 KiB
TypeScript
49 lines
2.2 KiB
TypeScript
import { expect, test } from "playwright/test";
|
|
import { opaquePng } from "./helpers/fixtures";
|
|
import { openTool, uploadImage } from "./helpers/page";
|
|
|
|
test("поиск каталога находит по названию из другой локали", async ({
|
|
page,
|
|
}) => {
|
|
await page.goto("/list-tools");
|
|
const input = page.locator(".catalog-search input");
|
|
const flipCard = page.locator('a.tool-card[href*="flip-png"]');
|
|
await input.fill("отразить");
|
|
await expect(flipCard).toContainText("Flip PNG");
|
|
await page.getByRole("button", { name: "RU", exact: true }).click();
|
|
await expect(flipCard).toContainText("Отразить PNG");
|
|
await input.fill("flip");
|
|
await expect(flipCard).toContainText("Отразить PNG");
|
|
});
|
|
|
|
test("RU/EN: переключение переводит заголовок инструмента", async ({
|
|
page,
|
|
}) => {
|
|
await openTool(page, "resize-png");
|
|
const ruBtn = page.getByRole("button", { name: "RU", exact: true });
|
|
const enBtn = page.getByRole("button", { name: "EN", exact: true });
|
|
await expect(async () => {
|
|
await ruBtn.click();
|
|
await expect(page.locator(".schema-tool h1")).toHaveText(
|
|
"Изменить размер PNG",
|
|
);
|
|
}).toPass();
|
|
await expect(ruBtn).toHaveAttribute("aria-pressed", "true");
|
|
await enBtn.click();
|
|
await expect(page.locator(".schema-tool h1")).toHaveText("Resize PNG");
|
|
});
|
|
|
|
// Валится на известном баге resize-png (дефолтные 0-параметры дают ошибку при
|
|
// аплоаде, см. known-issues.spec.ts). Здесь он используется как детерминированная
|
|
// ошибка: важно, что её текст локализован, а не сырой ключ.
|
|
// TODO: найти другую ошибку, эта будет исправлена при фиксе resize-png
|
|
test("ошибка run'а локализуется, не сырой i18n-ключ", async ({ page }) => {
|
|
await openTool(page, "resize-png");
|
|
await uploadImage(page, opaquePng);
|
|
const alert = page.locator("[role='alert']");
|
|
await expect(alert).toBeVisible();
|
|
const text = (await alert.textContent()) ?? "";
|
|
expect(text).not.toMatch(/^errors\./);
|
|
expect(text.length).toBeGreaterThan(3);
|
|
});
|