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

118 lines 13.9 kB
"use strict"; 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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