From ae100de51911deb1e43831053c543ea80b10ca09 Mon Sep 17 00:00:00 2001 From: Scott Dickerson <6663002+scottdickerson@users.noreply.github.com> Date: Wed, 3 Oct 2018 09:59:30 -0500 Subject: [PATCH] fix(DatePicker): protect flatpickr in shallow render tests (#1389) * fix(DatePicker): protect flatpickr in shallow render tests * fix(DatePicker): add comment to describe the Null check --- src/components/DatePicker/DatePicker.js | 59 +++++++++++++------------ 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/src/components/DatePicker/DatePicker.js b/src/components/DatePicker/DatePicker.js index 6225e6cd940d..70a66381da48 100644 --- a/src/components/DatePicker/DatePicker.js +++ b/src/components/DatePicker/DatePicker.js @@ -247,34 +247,37 @@ export default class DatePicker extends Component { typeof appendTo === 'string' ? document.querySelector(appendTo) : appendTo; - this.cal = new flatpickr(this.inputField, { - defaultDate: value, - appendTo: appendToNode, - mode: datePickerType, - allowInput: true, - dateFormat: dateFormat, - locale: l10n[locale], - minDate: minDate, - maxDate: maxDate, - plugins: - datePickerType === 'range' - ? [new rangePlugin({ input: this.toInputField })] - : '', - clickOpens: true, - nextArrow: this.rightArrowHTML(), - leftArrow: this.leftArrowHTML(), - onChange: (...args) => { - if (onChange) { - onChange(...args); - } - }, - onReady: onHook, - onMonthChange: onHook, - onYearChange: onHook, - onOpen: onHook, - onValueUpdate: onHook, - }); - this.addKeyboardEvents(this.cal); + // inputField ref might not be set in enzyme tests + if (this.inputField) { + this.cal = new flatpickr(this.inputField, { + defaultDate: value, + appendTo: appendToNode, + mode: datePickerType, + allowInput: true, + dateFormat: dateFormat, + locale: l10n[locale], + minDate: minDate, + maxDate: maxDate, + plugins: + datePickerType === 'range' + ? [new rangePlugin({ input: this.toInputField })] + : '', + clickOpens: true, + nextArrow: this.rightArrowHTML(), + leftArrow: this.leftArrowHTML(), + onChange: (...args) => { + if (onChange) { + onChange(...args); + } + }, + onReady: onHook, + onMonthChange: onHook, + onYearChange: onHook, + onOpen: onHook, + onValueUpdate: onHook, + }); + this.addKeyboardEvents(this.cal); + } } }