umbraco-cypress-testhelpers
Version:
Test helpers for making Cypress tests for Umbraco solutions
63 lines • 4.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const commandBase_1 = tslib_1.__importDefault(require("./commandBase"));
class UmbracoTreeItem extends commandBase_1.default {
constructor() {
super(...arguments);
this._commandName = 'umbracoTreeItem';
}
method(treeName, itemNamePathArray) {
const cy = this.cy;
const cypress = this.cypress;
cy.get('li > .umb-tree-root a[href*=' + treeName + ']', {
log: false,
}).then(($root) => {
return this.findItem($root.closest('li'), itemNamePathArray, 0);
});
cypress.log({
displayName: 'Umbraco Tree Item',
message: treeName + ': ' + itemNamePathArray.join(' -> '),
});
}
findItem(parentElement, items, index) {
const itemName = items[index];
const menuItems = parentElement.find('li');
let foundItem = null;
for (const mi of menuItems) {
const menuItem = cy.$$(mi);
let breakLoop = false;
// @ts-ignore
const xx = menuItem.find('.umb-tree-item__label').text((index, text) => {
if (text === itemName) {
foundItem = menuItem;
breakLoop = true;
}
});
if (breakLoop) {
break;
}
}
if (items.length === index + 1) {
return foundItem;
}
else if (foundItem != null) {
const li = foundItem.closest('li');
const ul = li.find('ul').first();
if (ul.hasClass('collapsed')) {
li.find('[data-element="tree-item-expand"]').click();
}
return cy
.wrap(ul)
.should('not.have.class', 'collapsed')
.then((xx) => {
return this.findItem(ul, items, index + 1);
});
}
else {
return null;
}
}
}
exports.default = UmbracoTreeItem;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW1icmFjb1RyZWVJdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2N5cHJlc3MvY29tbWFuZHMvdW1icmFjb1RyZWVJdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdFQUF3QztBQUV4QyxNQUFxQixlQUFnQixTQUFRLHFCQUFXO0lBQXhEOztRQUNFLGlCQUFZLEdBQUcsaUJBQWlCLENBQUM7SUE0RG5DLENBQUM7SUExREMsTUFBTSxDQUFDLFFBQVEsRUFBRSxpQkFBaUI7UUFDaEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRTdCLEVBQUUsQ0FBQyxHQUFHLENBQUMsOEJBQThCLEdBQUcsUUFBUSxHQUFHLEdBQUcsRUFBRTtZQUN0RCxHQUFHLEVBQUUsS0FBSztTQUNYLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRSxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDVixXQUFXLEVBQUUsbUJBQW1CO1lBQ2hDLE9BQU8sRUFBRSxRQUFRLEdBQUcsSUFBSSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDMUQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUs7UUFDbEMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlCLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFM0MsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLEtBQUssTUFBTSxFQUFFLElBQUksU0FBUyxFQUFFO1lBQzFCLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0IsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLGFBQWE7WUFDYixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNyRSxJQUFJLElBQUksS0FBSyxRQUFRLEVBQUU7b0JBQ3JCLFNBQVMsR0FBRyxRQUFRLENBQUM7b0JBQ3JCLFNBQVMsR0FBRyxJQUFJLENBQUM7aUJBQ2xCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLFNBQVMsRUFBRTtnQkFDYixNQUFNO2FBQ1A7U0FDRjtRQUVELElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQzlCLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO2FBQU0sSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFO1lBQzVCLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFbkMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUVqQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzVCLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUN0RDtZQUVELE9BQU8sRUFBRTtpQkFDTixJQUFJLENBQUMsRUFBRSxDQUFDO2lCQUNSLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLENBQUM7aUJBQ3JDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO2dCQUNYLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM3QyxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztDQUNGO0FBN0RELGtDQTZEQyJ9