diff --git a/src/e2e/guest-create-order.spec.ts b/src/e2e/guest-create-order.spec.ts new file mode 100644 index 0000000..ad57978 --- /dev/null +++ b/src/e2e/guest-create-order.spec.ts @@ -0,0 +1,36 @@ +// import { createOrderFormData } from "@/lib/utils.tests"; +import { expect, test } from "@playwright/test"; +import { createOrderFormData } from "./utils-tests-e2e"; + +export type OrderFormData = Record; + +test.describe("Guest", () => { + test("Guest can create an order", async ({ page }) => { + // Navegar a la tienda y agregar un producto + await page.goto("http://localhost:5173/"); + + await page.getByRole("menuitem", { name: "Polos" }).click(); + await page.getByTestId("product-item").first().click(); + + await page.getByRole("button", { name: "Agregar al Carrito" }).click(); + await page.getByRole("link", { name: "Carrito de compras" }).click(); + + await page.getByRole("link", { name: "Continuar Compra" }).click(); + + // Llenar correctamente los campos + const orderForm = createOrderFormData(); + for (const [key, value] of Object.entries(orderForm)) { + const input = await page.getByRole("textbox", { name: key }); + await input.click(); + await input.fill(value); + } + await page.getByRole("combobox", { name: "País" }).selectOption("PE"); + + await page.getByRole("button", { name: "Confirmar Orden" }).click(); + + await expect( + page.getByText("¡Muchas gracias por tu compra!") + ).toBeVisible(); + await expect(page.getByTestId("orderId")).toBeVisible(); + }); +}); diff --git a/src/e2e/utils-tests-e2e.ts b/src/e2e/utils-tests-e2e.ts new file mode 100644 index 0000000..6bca144 --- /dev/null +++ b/src/e2e/utils-tests-e2e.ts @@ -0,0 +1,18 @@ +/* Helper functions → Playwright */ + +export type OrderFormData = Record; + +export const createOrderFormData = ( + overrides?: Partial +): OrderFormData => ({ + "Correo electrónico": "testinodp@codeable.com", + Nombre: "Testino", + Apellido: "Diprueba", + Compañia: "", + Dirección: "Calle Di Prueba 123", + Ciudad: "Lima", + "Provincia/Estado": "Lima", + "Código Postal": "51111", + Teléfono: "987456321", + ...overrides, +});