Files
upstream-mirror 135ffdb085
Some checks failed
Admin | Playwright Tests / Admin | Playwright Tests | Shard 1 Of 6 (push) Failing after 37s
Admin | Playwright Tests / Admin | Playwright Tests | Shard 2 Of 6 (push) Failing after 7s
Admin | Playwright Tests / Admin | Playwright Tests | Shard 4 Of 6 (push) Failing after 7s
Admin | Playwright Tests / Admin | Playwright Tests | Shard 6 Of 6 (push) Failing after 6s
Linting Tests / PHP 8.3 test on ubuntu-latest (push) Failing after 5s
CI / PHP 8.3 test on ubuntu-latest (push) Failing after 6s
Skills Consistency / validate-skills (push) Successful in 10s
Admin | Playwright Tests / Admin | Playwright Tests | Shard 3 Of 6 (push) Failing after 7s
Admin | Playwright Tests / Admin | Playwright Tests | Shard 5 Of 6 (push) Failing after 6s
snapshot of https://github.com/krayin/laravel-crm.git (2.2, 2026-09-18; blobs > 131072B omitted)
2026-09-18 04:37:41 +05:00

160 lines
5.4 KiB
TypeScript

import { expect } from "../setup";
import {
generateName,
generateFirstName,
generateLastName,
generateEmail,
generateDescription,
} from "./faker";
export async function register(page) {
const credentials = {
firstName: generateFirstName(),
lastName: generateLastName(),
email: generateEmail(),
password: "admin123",
};
await page.getByPlaceholder("First Name").fill(credentials.firstName);
await page.getByPlaceholder("Last Name").fill(credentials.lastName);
await page.getByPlaceholder("email@example.com").fill(credentials.email);
await page
.getByPlaceholder("Password", { exact: true })
.fill(credentials.password);
await page.getByPlaceholder("Confirm Password").fill(credentials.password);
const isAgreementVisible = await page.locator("#agreement").nth(1).isVisible();
if (isAgreementVisible) {
await page.getByText("I agree with this statement.").click();
}
const isNewsletterVisible = await page
.locator("#main form div")
.filter({ hasText: "Subscribe to newsletter" })
.locator("label")
.first()
.isVisible();
if (isNewsletterVisible) {
await page
.locator("#main form div")
.filter({ hasText: "Subscribe to newsletter" })
.locator("label")
.first()
.click();
}
await page.getByRole("button", { name: "Register" }).click();
await expect(
page
.getByText(
"Account created successfully, an e-mail has been sent for verification."
)
.first()
).toBeVisible();
return credentials;
}
export async function loginAsCustomer(page) {
const credentials = await register(page);
await page.goto("customer/login");
await page.getByPlaceholder("email@example.com").click();
await page.getByPlaceholder("email@example.com").fill(credentials.email);
await page.getByPlaceholder("email@example.com").press("Tab");
await page.getByPlaceholder("Password").fill(credentials.password);
await page.getByRole("button", { name: "Sign In" }).click();
return credentials;
}
export async function addAddress(page) {
await page.getByLabel("Profile").click();
await page.getByRole("link", { name: "Profile" }).click();
await page.getByRole("link", { name: " Address " }).click();
await page.getByRole("link", { name: "Add Address" }).click();
await page.getByPlaceholder("Company Name").click();
await page.getByPlaceholder("Company Name").fill(generateName());
await page.getByPlaceholder("Company Name").press("Tab");
await page.getByPlaceholder("First Name").fill(generateFirstName());
await page.getByPlaceholder("First Name").press("Tab");
await page.getByPlaceholder("Last Name").fill(generateLastName());
await page.getByPlaceholder("Last Name").press("Tab");
await page
.getByPlaceholder("Email", { exact: true })
.fill("test@example.com");
await page.getByPlaceholder("Email", { exact: true }).press("Tab");
await page.getByPlaceholder("Vat ID").press("Tab");
await page.getByPlaceholder("Street Address").fill("Demo");
await page.getByPlaceholder("Street Address").press("Tab");
await page.getByLabel("Country").selectOption("DZ");
await page.getByPlaceholder("State").click();
await page.getByPlaceholder("State").fill("any");
await page.getByPlaceholder("City").click();
await page.getByPlaceholder("City").fill("any");
await page.getByPlaceholder("Post Code").click();
await page.getByPlaceholder("Post Code").fill("123456");
await page.getByPlaceholder("Phone").click();
await page.getByPlaceholder("Phone").fill("9876543210");
await page
.locator("#main form div")
.filter({ hasText: "Set as Default" })
.locator("label")
.first()
.click();
await page
.locator("#main form div")
.filter({ hasText: "Set as Default" })
.locator("label")
.first()
.click();
await page.getByRole("button", { name: "Save" }).click();
await expect(
page.getByText("Address have been successfully added.").first()
).toBeVisible();
}
export async function addWishlist(page) {
await page.locator(".action-items > span").first().click();
await page
.locator(
"div:nth-child(9) > div:nth-child(2) > div > .-mt-9 > .action-items > span"
)
.first()
.click();
await expect(
page.getByText("Item Successfully Added To Wishlist").first()
).toBeVisible();
}
export async function addReview(page) {
const review = {
title: generateName(),
comment: generateDescription(),
};
await page
.locator("#main div")
.filter({ hasText: "New Products View All New" })
.getByLabel("Arctic Touchscreen Winter")
.click();
await page.getByRole("button", { name: "Reviews" }).click();
await page.locator("#review-tab").getByText("Write a Review").click();
await page.locator("#review-tab span").nth(3).click();
await page.locator("#review-tab span").nth(4).click();
await page.getByPlaceholder("Title").fill(review.title);
await page.getByPlaceholder("Comment").fill(review.comment);
await page.getByRole("button", { name: "Submit Review" }).click();
await expect(
page.getByText("Review submitted successfully.").first()
).toBeVisible();
return review;
}