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
118 lines • 13.9 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.browserHelper = void 0;
const logger_1 = __importDefault(require("../reporting-helpers/logger"));
const parse_data_1 = require("./parse-data");
const config_helper_1 = require("./config-helper");
const getCurrentUrl_1 = __importDefault(require("../framework-helpers/action/getCurrentUrl"));
const openUrl_1 = __importDefault(require("../framework-helpers/action/openUrl"));
const custom_expect_1 = require("./custom-expect");
const pause_1 = __importDefault(require("../framework-helpers/action/pause"));
const scriptExecute_1 = __importDefault(require("../framework-helpers/action/scriptExecute"));
const globals_1 = require("@wdio/globals");
class browserHelper {
// This function is used to clear the browser instance(localStorage & sessionStorage)
static clearBrowserStorage() {
function clearLocalAndSessionStorage() {
window.sessionStorage.clear();
window.localStorage.clear();
}
return globals_1.browser.execute(clearLocalAndSessionStorage);
}
static async currentPage(pageId, falseCase = false, maxCheckCounter = 10, checkInterval = 1000) {
const pageUrlPath = parse_data_1.ParseData.getEnvData('PAGE_URLS_PATH');
const pageConfig = parse_data_1.ParseData.getJsonFromFile(pageUrlPath);
custom_expect_1.CustomExpect.expectToBeTruthy(config_helper_1.ConfigHelper.isPageMappedInTheFramework(pageId, pageConfig), `Page "${pageId}" is not mapped in "./config/pages.json"`);
let isPageLoadSuccess = false;
let counter = 0;
let currentUrl;
const expectedPageResources = pageConfig[pageId];
logger_1.default.info(`Expected page resource is ${falseCase ? 'not' : ''} "${expectedPageResources}"`);
do {
await (0, pause_1.default)(1000);
currentUrl = await (0, getCurrentUrl_1.default)();
logger_1.default.info(`Verifying URLS now`);
try {
if (!falseCase)
custom_expect_1.CustomExpect.expectToMatch(currentUrl, expectedPageResources, `Current URL "${currentUrl}" is not MATCHING with expected URL "${expectedPageResources}"`);
else
custom_expect_1.CustomExpect.expectNotToMatch(currentUrl, expectedPageResources, `Current URL "${currentUrl}" is MATCHING with expected URL "${expectedPageResources}"`);
isPageLoadSuccess = true;
}
catch (e) {
await (0, pause_1.default)(checkInterval);
logger_1.default.info(`User is not on the expected page. Please wait...`);
counter++;
}
} while (isPageLoadSuccess == false && counter <= maxCheckCounter);
custom_expect_1.CustomExpect.expectToBeTruthy(isPageLoadSuccess, `User is ${falseCase ? '' : 'not'} on the "${pageId}" page`);
logger_1.default.info(`Verified : User is ${falseCase ? 'not' : ''} on the "${pageId}" page now`);
}
static async exactPage(pageId, falseCase = false, maxCheckCounter = 10, checkInterval = 1000) {
//await this.waitUntilPageLoadedSuccessfully(5000);
const pageUrlPath = parse_data_1.ParseData.getEnvData('PAGE_URLS_PATH');
const pageConfig = parse_data_1.ParseData.getJsonFromFile(pageUrlPath);
custom_expect_1.CustomExpect.expectToBeTruthy(config_helper_1.ConfigHelper.isPageMappedInTheFramework(pageId, pageConfig), `Page "${pageId}" is not mapped in "./config/pages.json"`);
let isPageLoadSuccess = false;
let counter = 0;
let currentUrl;
const expectedPageResources = parse_data_1.ParseData.getEnvData("HOST_URL") + pageConfig[pageId];
logger_1.default.info(`Expected page resource is ${falseCase ? 'not' : ''} "${expectedPageResources}"`);
do {
await (0, pause_1.default)(checkInterval);
currentUrl = await (0, getCurrentUrl_1.default)();
logger_1.default.info(`Verifying URLS now...`);
try {
if (!falseCase)
custom_expect_1.CustomExpect.expectToEqual(currentUrl, expectedPageResources, `Current URL "${currentUrl}" is not equal with expected URL "${expectedPageResources}"`);
else
custom_expect_1.CustomExpect.expectNotToEqual(currentUrl, expectedPageResources, `Current URL "${currentUrl}" is equal with expected URL "${expectedPageResources}"`);
isPageLoadSuccess = true;
}
catch (e) {
await (0, pause_1.default)(checkInterval);
logger_1.default.info(`User is not on the expected page. Please wait...`);
counter++;
}
} while (isPageLoadSuccess == false && counter <= maxCheckCounter);
custom_expect_1.CustomExpect.expectToBeTruthy(isPageLoadSuccess, `User is ${falseCase ? '' : 'not'} on the "${pageId}" page`);
logger_1.default.info(`Verified : User is ${falseCase ? 'not' : ''} on the "${pageId}" page now`);
}
static async navigateToPageFromHost(pageId, hostName = "HOST_URL", clearCacheAndStorage = true) {
const pageUrlPath = parse_data_1.ParseData.getEnvData('PAGE_URLS_PATH');
const pageConfig = parse_data_1.ParseData.getJsonFromFile(pageUrlPath);
// expect(ConfigHelper.isPageMappedInTheFramework(pageId, pageConfig)).toBeTruthy();
custom_expect_1.CustomExpect.expectToBeTruthy(config_helper_1.ConfigHelper.isPageMappedInTheFramework(pageId, pageConfig), `Page "${pageId}" is not mapped in "./config/pages.json"`);
const pageResourcesFromPageConfig = pageConfig[pageId];
logger_1.default.info(`Page Resource from Config >>> ${pageResourcesFromPageConfig}`);
const hostUrl = parse_data_1.ParseData.getEnvData(hostName.toUpperCase());
const targetUrl = `${hostUrl}${pageResourcesFromPageConfig}`;
//revisit this line
logger_1.default.info(`Clear cache : ${clearCacheAndStorage}`);
clearCacheAndStorage ? await (0, openUrl_1.default)(targetUrl) : await (0, scriptExecute_1.default)('window.history.pushState("", "", "' + targetUrl + '")');
}
static async navigateUsingDeepLink(deepLink, hostName = "HOST_URL") {
const hostUrl = parse_data_1.ParseData.getEnvData(hostName.toUpperCase());
const targetUrl = `${hostUrl}${deepLink}`;
logger_1.default.info(`Target URL : ${targetUrl}`);
await (0, openUrl_1.default)(targetUrl);
}
static async waitForAllAureliaComponentLoaded() {
await globals_1.browser.waitUntil(async () => {
let componentsLoadedInfo = await globals_1.browser.execute(() => {
//@ts-ignore
return (typeof document.__aureliaGlobal !== 'undefined' && document.aureliaAllComposed === true);
});
return componentsLoadedInfo;
}, {
timeout: parseInt(parse_data_1.ParseData.getEnvData('PAGE_LOAD_TIMEOUT_MS')),
interval: parseInt(parse_data_1.ParseData.getEnvData('MAX_TRY')),
timeoutMsg: 'Not all components loaded'
});
}
}
exports.browserHelper = browserHelper;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZTJlL2hlbHBlcnMvY29tbW9uLWhlbHBlcnMvYnJvd3Nlci1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEseUVBQWlEO0FBQ2pELDZDQUF1QztBQUN2QyxtREFBNkM7QUFDN0MsOEZBQXNFO0FBQ3RFLGtGQUEwRDtBQUMxRCxtREFBNkM7QUFDN0MsOEVBQXNEO0FBQ3RELDhGQUFzRTtBQUN0RSwyQ0FBb0Q7QUFFcEQsTUFBYSxhQUFhO0lBQzFCLHFGQUFxRjtJQUMxRSxNQUFNLENBQUMsbUJBQW1CO1FBQzdCLFNBQVMsMkJBQTJCO1lBQ2hDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQyxDQUFDO1FBRUQsT0FBTyxpQkFBTyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFjLEVBQUUsWUFBcUIsS0FBSyxFQUFFLGtCQUEwQixFQUFFLEVBQUUsZ0JBQXdCLElBQUk7UUFDbEksTUFBTSxXQUFXLEdBQUcsc0JBQVMsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMzRCxNQUFNLFVBQVUsR0FBRyxzQkFBUyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxRCw0QkFBWSxDQUFDLGdCQUFnQixDQUFDLDRCQUFZLENBQUMsMEJBQTBCLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLFNBQVMsTUFBTSwwQ0FBMEMsQ0FBQyxDQUFDO1FBQ3RKLElBQUksaUJBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ3ZDLElBQUksT0FBTyxHQUFXLENBQUMsQ0FBQztRQUN4QixJQUFJLFVBQWtCLENBQUM7UUFD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