e2ed
Version:
E2E testing framework over Playwright
28 lines (27 loc) • 1.3 kB
JavaScript
;
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;