UNPKG

e2ed

Version:

E2E testing framework over Playwright

28 lines (27 loc) 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createPageObjectsFromMultiLocator = void 0; const asserts_1 = require("./asserts"); /** * Creates record of pageObject's from their constructor and multilocator with them. */ const createPageObjectsFromMultiLocator = async ({ keyParameter, locator, PageObjectClass, }) => { const logParams = { PageObjectClassName: PageObjectClass.name, keyParameter, locator: String(locator), }; const multiSelector = locator(); const numberOfPageObjects = await multiSelector.count; const result = Object.create(null); for (let index = 0; index < numberOfPageObjects; index += 1) { const selector = multiSelector.nth(index); const parameter = await selector.getLocatorParameter(keyParameter); (0, asserts_1.assertValueIsNotNull)(parameter, 'parameter is not null', logParams); (0, asserts_1.assertValueIsFalse)(parameter in result, 'parameter is unique key', { ...logParams, parameter }); const locatorWithParameter = locator({ [keyParameter]: parameter }); result[parameter] = new PageObjectClass(locatorWithParameter); } return result; }; exports.createPageObjectsFromMultiLocator = createPageObjectsFromMultiLocator;