FactuGES_ERP/tests/e2e/document-series/document-series-settings.spec.ts

92 lines
4.4 KiB
TypeScript
Raw Normal View History

import { randomUUID } from "node:crypto";
import { expect, test } from "@playwright/test";
import { loginViaUi } from "../support/login-via-ui";
const fillDocumentSeriesForm = async (
page: import("@playwright/test").Page,
values: { code: string; name: string; prefix: string; suffix: string; nextNumber: number }
) => {
await page.locator('input[name="code"]').fill(values.code);
await page.locator('input[name="name"]').fill(values.name);
await page.locator('input[name="prefix"]').fill(values.prefix);
await page.locator('input[name="suffix"]').fill(values.suffix);
await page.locator('input[name="nextNumber"]').fill(String(values.nextNumber));
await page.getByTestId("document-series-form-submit").click();
};
test.describe
.serial("document-series settings", () => {
test.beforeEach(async ({ page }) => {
await loginViaUi(page);
await page.goto("/settings/billing/document-series");
await expect(page.getByTestId("document-series-title")).toBeVisible();
});
test("DOCUMENT-SERIES-SETTINGS-001: administra creación, edición, default, avance, estado y filtros", async ({
page,
}, testInfo) => {
const suffix = `${Date.now()}-${testInfo.workerIndex}-${randomUUID().slice(0, 8)}`;
const first = {
code: `E2EP${suffix}`,
name: `E2E Proforma ${suffix}`,
prefix: "P-",
suffix: "",
nextNumber: 10,
};
const second = {
code: `E2EQ${suffix}`,
name: `E2E Secundaria ${suffix}`,
prefix: "Q-",
suffix: "-X",
nextNumber: 20,
};
await page.getByTestId("document-series-create").click();
await expect(page.getByTestId("document-series-form-dialog")).toBeVisible();
await fillDocumentSeriesForm(page, first);
await expect(page.getByTestId(`document-series-code-${first.code}`)).toHaveText(first.code);
await expect(page.getByTestId(`document-series-next-number-${first.code}`)).toHaveText("10");
await page.getByTestId(`document-series-edit-${first.code}`).click();
await expect(page.locator('input[name="code"]')).toHaveCount(0);
await expect(page.locator('input[name="documentType"]')).toHaveCount(0);
await page.locator('input[name="name"]').fill(`${first.name} editada`);
await page.locator('input[name="padding"]').fill("5");
await page.getByTestId("document-series-form-submit").click();
await page.reload();
await expect(page.getByTestId(`document-series-name-${first.code}`)).toHaveText(
`${first.name} editada`
);
await page.getByTestId("document-series-create").click();
await fillDocumentSeriesForm(page, second);
await expect(page.getByTestId(`document-series-code-${second.code}`)).toHaveText(second.code);
await page.getByTestId(`document-series-default-${second.code}`).click();
await expect(page.getByTestId(`document-series-default-${second.code}`)).toHaveCount(0);
await expect(page.getByTestId(`document-series-default-state-${second.code}`)).toBeVisible();
await expect(page.getByTestId(`document-series-default-state-${first.code}`)).toBeEmpty();
await page.getByTestId(`document-series-advance-${second.code}`).click();
await expect(page.getByTestId("document-series-advance-dialog")).toBeVisible();
await page.locator('input[name="nextNumber"]').fill("25");
await page.getByTestId("document-series-advance-submit").click();
await expect(page.getByTestId(`document-series-next-number-${second.code}`)).toHaveText("25");
await page.getByTestId(`document-series-disable-${second.code}`).click();
await expect(page.getByTestId("document-series-disable-dialog")).toBeVisible();
await expect(page.getByTestId("document-series-disable-dialog")).toContainText(
/predeterminada|default/i
);
await page.getByTestId("document-series-disable-confirm").click();
await expect(page.getByTestId(`document-series-enable-${second.code}`)).toBeVisible();
await expect(page.getByTestId(`document-series-default-state-${second.code}`)).toBeEmpty();
await page.getByTestId(`document-series-enable-${second.code}`).click();
await expect(page.getByTestId(`document-series-disable-${second.code}`)).toBeVisible();
await page.getByTestId("document-series-search").locator("input").fill(second.code);
await expect(page.getByTestId(`document-series-code-${second.code}`)).toBeVisible();
});
});