mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-06 03:13:42 -05:00
Revert "Merge pull request #2969 from alphagov/revert-2956-progressively-enhance-folder-permissions"
This reverts commit8266f3d65c, reversing changes made tob2a38fe222.
This commit is contained in:
84
tests/javascripts/support/helpers.js
Normal file
84
tests/javascripts/support/helpers.js
Normal file
@@ -0,0 +1,84 @@
|
||||
const triggerEvent = (el, evtType) => {
|
||||
const evt = new Event(evtType, {
|
||||
bubbles: true,
|
||||
cancelable: true
|
||||
});
|
||||
|
||||
el.dispatchEvent(evt);
|
||||
};
|
||||
|
||||
class ElementQuery {
|
||||
constructor (el) {
|
||||
this.el = el;
|
||||
}
|
||||
|
||||
get nodeName () {
|
||||
return this.el.nodeName.toLowerCase();
|
||||
}
|
||||
|
||||
get firstTextNodeValue () {
|
||||
const textNodes = Array.from(this.el.childNodes).filter(el => el.nodeType === 3);
|
||||
|
||||
return textNodes.length ? textNodes[0].nodeValue : undefined;
|
||||
};
|
||||
// returns the elements attributes as an object
|
||||
hasAttributesSetTo (mappings) {
|
||||
if (!this.el.hasAttributes()) { return false; }
|
||||
|
||||
const keys = Object.keys(mappings);
|
||||
let matches = 0;
|
||||
|
||||
keys.forEach(key => {
|
||||
if (this.el.hasAttribute(key) && (this.el.attributes[key].value === mappings[key])) {
|
||||
matches++;
|
||||
}
|
||||
});
|
||||
|
||||
return matches === keys.length;
|
||||
}
|
||||
|
||||
hasClass (classToken) {
|
||||
return Array.from(this.el.classList).includes(classToken);
|
||||
}
|
||||
|
||||
is (state) {
|
||||
const test = `_is${state.charAt(0).toUpperCase()}${state.slice(1)}`;
|
||||
|
||||
if (ElementQuery.prototype.hasOwnProperty(test)) {
|
||||
return this[test]();
|
||||
}
|
||||
}
|
||||
|
||||
// looks for a sibling before the el that matches the supplied test function
|
||||
// the test function gets sent each sibling, wrapped in an Element instance
|
||||
getPreviousSibling (test) {
|
||||
let node = this.el.previousElementSibling;
|
||||
let el;
|
||||
|
||||
while(node) {
|
||||
el = element(node);
|
||||
|
||||
if (test(el)) {
|
||||
return node;
|
||||
}
|
||||
|
||||
node = node.previousElementSibling;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
_isHidden () {
|
||||
const display = window.getComputedStyle(this.el).getPropertyValue('display');
|
||||
|
||||
return display === 'none';
|
||||
}
|
||||
};
|
||||
|
||||
// function to ask certain questions of a DOM Element
|
||||
const element = function (el) {
|
||||
return new ElementQuery(el);
|
||||
};
|
||||
|
||||
exports.triggerEvent = triggerEvent;
|
||||
exports.element = element;
|
||||
Reference in New Issue
Block a user