UNPKG

create-locator

Version:

Creates HTML element locators for tests 📌

48 lines (47 loc) • 1.71 kB
/** * Creates locator function by locator options. */ export const createSimpleLocator = ({ attributesOptions, isProduction, }) => { var emptyLocator = {}; if (isProduction) { return { getTestId: () => '', locator: () => emptyLocator }; } var { parameterAttributePrefix, testIdAttribute, testIdSeparator } = attributesOptions; var getTestId = (...args) => { var parts = []; for (var index = 0; index < args.length; index += 1) { var arg = args[index]; if (arg == null) { return ''; } if (index === args.length - 1 && typeof arg === 'object') { return parts.join(testIdSeparator); } var part = String(arg); if (part === '') { return ''; } parts.push(part); } return parts.join(testIdSeparator); }; var locator = (...args) => { var testId = getTestId(...args); if (testId === '') { return emptyLocator; } var locator = { [testIdAttribute]: testId }; var parameters = args[args.length - 1]; if (parameters !== null && typeof parameters === 'object') { for (var name of Object.keys(parameters)) { var value = parameters[name]; if (value != null) { locator[parameterAttributePrefix + name] = String(value); } } } return locator; }; return { getTestId, locator }; }; export { anyLocator, createLocator, createRootLocator, getLocatorParameters, removeMarkFromProperties, setGlobalProductionMode, } from './oldApi.js';