UNPKG

tlc-core-automation-framework-v3-wdio-v9

Version:

Background: - We are following multi-layer automation framework architecture using webdriver.io + cucumber + typescript This core framework has been implemented with generic utility functions and cucumber steps, which can be easily consumed by another fra

110 lines (92 loc) 3.25 kB
import logger from "../reporting-helpers/logger"; export const randomInputTypes = ['email', 'password'] as const; export type RandomInputType = typeof randomInputTypes[number]; // @ts-ignore import faker from 'faker' export class DataHelper { public static getRandomFirstName() { return faker.name.firstName(); } public static getRandomLastName() { return faker.name.lastName(); } public static getRandomEmailAddress() { return faker.internet.email(); } public static getRandomData(dataType: string) { let randomData: string = ''; switch (dataType.toLocaleLowerCase()) { case 'email address': randomData = DataHelper.getRandomEmailAddress(); break; case 'first name': randomData = DataHelper.getRandomFirstName(); break; case 'last name': randomData = DataHelper.getRandomLastName(); break; default: throw Error(`No case implemented for random ${dataType}`) break; } return randomData; } public static getPostcodeByState(state: string) { let postcode: string = ''; switch (state.toLocaleLowerCase()) { case 'act': postcode = '2900'; break; case 'nsw': postcode = '2000'; break; case 'nt': postcode = '0800'; break; case 'sa': postcode = '5018'; break; case 'tas': postcode = '7010'; break; case 'nz': postcode = '5022'; break; case 'vic': postcode = '3000'; break; default: postcode = '4000'; break; } return postcode; } public static getValueFromCollection(data: { [k: string]: any }, myKey: string): any { if (this.isKeyExistsInMyCollection(data, myKey)) return data[myKey] else throw Error(`Key : "${myKey}" is NOT FOUND in the object "data"`) } public static addDataToCollection(data: { [k: string]: any }, myKey: string, myValue: any): void { data[myKey] = myValue; logger.info(`"${myKey}" = "${myValue}" is added to collection "${data}"`); } public static isKeyExistsInMyCollection(data: { [k: string]: any }, myKey: string): boolean { return data[myKey]; } public static cleanMyCollection(data: { [k: string]: any }): void { data = {}; logger.info(`Collection "${data}" is CLEARED now`); } public static getDataFromSimpleObject(data: {}, expectedKey: string): string { if (Object.keys(data).length === 0) throw Error(`"${data}" is blank, no KEY found`); else if (expectedKey in data) return data[expectedKey] else throw Error(`Key "${expectedKey}" is NOT FOUND in "${data}"`) } public static isObjectEmpty(data: {}): boolean { return (Object.keys(data).length === 0); } }