Skip to content

Commit a3efd54

Browse files
authored
Allow test-helpers to accept DOM Elements
One of the issues I ran into I didn't have access to the selector strings but instead the actual DOM element. This is usually the case in addons like [fractal-page-object](https://github.com/bendemboski/fractal-page-object). With this change we can seamlessly use both. Ember test-helpers function with both a string selector or a DOM Element. Here is a working example: ```js class Foo extends PageObject { form = selector('[data-test-selector=my-form]', class extends PageObject { calendar = selector('ember-power-calendar', class extends PageObject { selectDate(date) { return calendarSelect(this.element, date); } }); }); } ```
1 parent 89055f7 commit a3efd54

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

addon-test-support/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { click, settled, find } from '@ember/test-helpers';
44
import { formatDate } from 'ember-power-calendar-utils';
55

66
function findCalendarElement(selector) {
7-
let target = find(selector);
7+
let target = typeof selector === 'string' ? find(selector) : selector;
88

99
if (target) {
1010
if (target.classList.contains('ember-power-calendar')) {
@@ -46,10 +46,10 @@ export async function calendarCenter(selector, newCenter) {
4646
export async function calendarSelect(selector, selected) {
4747
assert('`calendarSelect` expect a Date object as second argument', selected);
4848
let calendarElement = findCalendarElement(selector);
49-
let daySelector = `${selector} [data-date="${formatDate(selected, 'YYYY-MM-DD')}"]`;
49+
let daySelector = `[data-date="${formatDate(selected, 'YYYY-MM-DD')}"]`;
5050
let dayElement = calendarElement.querySelector(daySelector);
5151
if (!dayElement) {
5252
await calendarCenter(selector, selected);
5353
}
54-
return click(daySelector);
54+
return click(dayElement);
5555
}

0 commit comments

Comments
 (0)