Skip to content

Commit

Permalink
add ability to pass an html element to test helpers
Browse files Browse the repository at this point in the history
  • Loading branch information
AmauryD committed Nov 13, 2023
1 parent 427b782 commit da0a354
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 0 deletions.
12 changes: 12 additions & 0 deletions addon-test-support/helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ export function isFlatpickrOpen(pickrIndex = 0) {
* @function setFlatpickrDate
*/
export function setFlatpickrDate(selector, date, triggerChange = true) {
if (selector instanceof HTMLElement) {
selector._flatpickr.setDate(date, triggerChange);
return;
}
const flatpickrInput = find(selector);
if (!flatpickrInput) _throwSelectorError(selector, 'setFlatpickrDate');
flatpickrInput._flatpickr.setDate(date, triggerChange);
Expand All @@ -34,6 +38,10 @@ export function setFlatpickrDate(selector, date, triggerChange = true) {
* @function closeFlatpickrDate
*/
export function closeFlatpickrDate(selector) {
if (selector instanceof HTMLElement) {
selector._flatpickr.close();
return;
}
const flatpickrInput = find(selector);
if (!flatpickrInput) _throwSelectorError(selector, 'closeFlatpickrDate');
flatpickrInput._flatpickr.close();
Expand All @@ -45,6 +53,10 @@ export function closeFlatpickrDate(selector) {
* @function clearFlatpickrDate
*/
export function clearFlatpickrDate(selector) {
if (selector instanceof HTMLElement) {
selector._flatpickr.clear(); // eslint-disable-line
return;
}
const flatpickrInput = find(selector);
if (!flatpickrInput) _throwSelectorError(selector, 'clearFlatpickrDate');
flatpickrInput._flatpickr.clear(); // eslint-disable-line
Expand Down
59 changes: 59 additions & 0 deletions tests/integration/components/ember-flatpickr-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ import {
triggerEvent,
} from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';
import {
clearFlatpickrDate,
closeFlatpickrDate,
setFlatpickrDate,
} from 'ember-flatpickr/test-support/helpers';

const clickDay = async (index) => {
await triggerEvent(findAll('.flatpickr-days .flatpickr-day')[index], 'click');
Expand Down Expand Up @@ -774,4 +779,58 @@ module('Integration | Component | ember flatpickr', function (hooks) {
'disable config was not overwritten'
);
});

module('Addon test support', (hooks) => {
async function renderFlatPickr() {
await render(
hbs`<EmberFlatpickr
@date={{this.date}}
@onChange={{null}}
data-test-ember-flatpickr
/>`
);
}

hooks.beforeEach(async function () {
this.set('date', null);
await renderFlatPickr();
});

test('setFlatpickrDate allows an html element as selector', async function (assert) {
assert.expect(1);
const flatpickr = find('[data-test-ember-flatpickr]');
const date = new Date('2080-12-01T16:16:22.585Z');

setFlatpickrDate(flatpickr, date);

assert.strictEqual(
flatpickr._flatpickr.selectedDates[0].toISOString(),
'2080-12-01T16:16:22.000Z'
);
});

test('closeFlatpickrDate allows an html element as selector', async function (assert) {
assert.expect(2);
const flatpickr = find('[data-test-ember-flatpickr]');

flatpickr._flatpickr.open();

assert.true(flatpickr._flatpickr.isOpen);

closeFlatpickrDate(flatpickr);

assert.false(flatpickr._flatpickr.isOpen);
});

test('clearFlatpickrDate allows an html element as selector', async function (assert) {
this.set('date', new Date('2080-12-01T16:16:22.000Z'));
const flatpickr = find('[data-test-ember-flatpickr]');
assert.strictEqual(
flatpickr._flatpickr.selectedDates[0].toISOString(),
'2080-12-01T16:16:22.000Z'
);
clearFlatpickrDate(flatpickr);
assert.strictEqual(flatpickr._flatpickr.selectedDates[0], undefined);
});
});
});

0 comments on commit da0a354

Please sign in to comment.