UNPKG

ember-cli-page-object

Version:

This ember-cli addon eases the construction of page objects on your acceptance and integration tests

35 lines (27 loc) 1.05 kB
import EmberError from '@ember/error'; import Ceibo from 'ceibo'; export const ELEMENT_NOT_FOUND = 'Element not found.'; /** * Throws an error with a descriptive message. * * @param {Ceibo} node PageObject node containing the property that triggered the error * @param {string} key Key of PageObject property tht triggered the error * @param {string} msg Error message * @param {Object} options * @param {string} options.selector Selector of element targeted by PageObject property * @return {Ember.Error} */ export function throwBetterError(node, key, msg, { selector } = {}) { let path = [key]; let current; for (current = node; current; current = Ceibo.parent(current)) { path.unshift(Ceibo.meta(current).key); } path[0] = 'page'; let fullErrorMessage = `${msg}\n\nPageObject: '${path.join('.')}'`; if (selector) { fullErrorMessage = `${fullErrorMessage}\n Selector: '${selector}'`; } console.error(fullErrorMessage); throw new EmberError(fullErrorMessage); }