playwright-cucumber-ts-steps
Version:
A collection of reusable Playwright step definitions for Cucumber in TypeScript, designed to streamline end-to-end testing across web, API, and mobile applications.
61 lines (60 loc) • 2.83 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.evaluateFaker = evaluateFaker;
const faker_1 = require("@faker-js/faker");
const dayjs_1 = __importDefault(require("dayjs"));
const fakerMapping = {
"First Name": () => faker_1.faker.person.middleName(),
Name: () => faker_1.faker.person.middleName(),
"Last Name": () => faker_1.faker.person.middleName(),
Email: () => faker_1.faker.internet.email(),
"Phone Number": () => faker_1.faker.string.numeric(10),
Number: () => faker_1.faker.string.numeric(11),
"Complete Number": () => faker_1.faker.string.numeric(11),
"App Colour": () => faker_1.faker.color.rgb(),
"App Name": () => faker_1.faker.commerce.productName(),
"Role Name": () => faker_1.faker.person.jobTitle(),
"Company Name": () => faker_1.faker.company.name(),
"Full Name": () => faker_1.faker.person.fullName(),
"Disposable Email": () => faker_1.faker.internet.email({ provider: "inboxkitten.com" }),
"ALpha Numeric": () => faker_1.faker.string.numeric(11) + "e",
"Lorem Word": () => faker_1.faker.lorem.sentences({ min: 1, max: 3 }),
Word: () => faker_1.faker.lorem.word({ length: { min: 5, max: 11 } }),
"Current Date": () => (0, dayjs_1.default)().format("YYYY-MM-DD"),
"Current Date2": () => new Date().toISOString().split("T")[0],
MonthsFromNow: (months) => {
const monthsToAdd = parseInt(months || "0", 10);
return (0, dayjs_1.default)().add(monthsToAdd, "month").format("YYYY-MM-DD");
},
MonthsAgo: (months) => {
const monthsToSubtract = parseInt(months || "0", 10);
return (0, dayjs_1.default)().subtract(monthsToSubtract, "month").format("YYYY-MM-DD");
},
WeeksFromNow: (weeks) => {
const weeksToAdd = parseInt(weeks || "0", 10);
return (0, dayjs_1.default)().add(weeksToAdd, "week").format("YYYY-MM-DD");
},
WeeksAgo: (weeks) => {
const weeksToSubtract = parseInt(weeks || "0", 10);
return (0, dayjs_1.default)().subtract(weeksToSubtract, "week").format("YYYY-MM-DD");
},
DaysFromNow: (days) => {
const daysToAdd = parseInt(days || "0", 10);
return (0, dayjs_1.default)().add(daysToAdd, "day").format("YYYY-MM-DD");
},
DaysAgo: (days) => {
const daysToSubtract = parseInt(days || "0", 10);
return (0, dayjs_1.default)().subtract(daysToSubtract, "day").format("YYYY-MM-DD");
},
};
function evaluateFaker(value) {
const [key, param] = value.split(":");
const fn = fakerMapping[key];
if (typeof fn === "function") {
return fn(param);
}
return value; // fallback to raw value if not mapped
}