50 lines
1.4 KiB
TypeScript
Raw Normal View History

2018-09-17 23:03:32 -07:00
import { TestContext } from 'ember-test-helpers';
2019-08-31 20:51:14 -07:00
export const getText = (test: TestContext): string => {
2018-09-17 23:03:32 -07:00
return (test.element.textContent || '').trim();
};
2019-08-31 20:51:14 -07:00
export const getTextNoSpaces = (test: TestContext): string => {
2018-09-17 23:03:32 -07:00
return getText(test).replace(/\s/gi, '');
};
2019-08-31 20:51:14 -07:00
export const getTextNoSpacesFromElement = (element: Element): string => {
return (element.textContent || '').replace(/\s/gi, '');
};
export const getTextNoSpacesFromElements = (elements: Array<Element>): string => {
return elements.map(element => getTextNoSpacesFromElement(element)).join('');
};
export const getElement = (test: TestContext): Element => {
2018-09-17 23:03:32 -07:00
const element = test.element;
if (!element) {
throw new Error(`Base element not found`);
2018-09-17 23:03:32 -07:00
}
return element;
};
export const querySelector = <E extends Element>(test: TestContext, selector: string): E => {
const element = getElement(test);
const selectedElement = element.querySelector<E>(selector);
if (!selectedElement) {
throw new Error(`Element ${selector} not found`);
}
return selectedElement;
};
export const querySelectorAll = <E extends Element>(test: TestContext, selector: string): NodeListOf<E> => {
const element = getElement(test);
const selectedElements = element.querySelectorAll<E>(selector);
if (!selectedElements) {
throw new Error(`Elements ${selector} not found`);
}
return selectedElements;
2018-09-17 23:03:32 -07:00
};