diff --git a/packages/devextreme/testing/helpers/calendarFixtures.js b/packages/devextreme/testing/helpers/calendarFixtures.js index 905ee592c731..efef5de6387a 100644 --- a/packages/devextreme/testing/helpers/calendarFixtures.js +++ b/packages/devextreme/testing/helpers/calendarFixtures.js @@ -1,91 +1,88 @@ import $ from 'jquery'; -import { noop } from 'core/utils/common'; -import Class from 'core/class'; -import Views from '__internal/ui/calendar/calendar.views'; const TEXTEDITOR_INPUT_SELECTOR = '.dx-texteditor-input'; window.DevExpress = window.DevExpress || {}; +DevExpress.ui = DevExpress.ui || {}; +DevExpress.ui.testing = DevExpress.ui.testing || {}; -$.extend(true, DevExpress.ui = DevExpress.ui || {}, { - testing: { - BaseCalendarFixture: Class.inherit({ - extractArray: function(elements, delegate) { - return $.map($.makeArray(elements), delegate); - }, - extractInnerHTMLArray: function(elements) { - return this.extractArray(elements, function(element, index) { - return element.innerHTML; - }); - }, - extractInnerTextArray: function(elements) { - return this.extractArray(elements, function(element, index) { - return $(element).text(); - }); - }, - extractClassArray: function(elements) { - return this.extractArray(elements, function(element, index) { - return element.getAttribute('class') || ''; - }); - }, - typeIntoInput: function(dateString, input) { - const keyPress = $.Event('keypress'); - let i; - for(i = 0; i < dateString.length; ++i) { - keyPress.key = dateString[i]; - input.val(input.val() + dateString[i]); - input.trigger(keyPress); - } - } - }), - MockMonthView: Views['month'].inherit({ - renderHeader: noop, - renderBody: noop - }) +class BaseCalendarFixture { + extractArray(elements, delegate) { + return $.map($.makeArray(elements), delegate); } -}); -$.extend(true, DevExpress.ui, { - testing: { - CalendarFixture: DevExpress.ui.testing.BaseCalendarFixture.inherit({ - ctor: function(options) { - this.rootElement = $('
'); - this.rootElement.appendTo('body'); - this.calendar = $('#calendar') - .dxCalendar($.extend({ monthViewType: DevExpress.ui.testing.MockMonthView }, options)) - .dxCalendar('instance'); - this.navigatorLinks = { - 'prevYear': this.rootElement.find('.dx-calendar-navigator-previous-year'), - 'prevView': this.rootElement.find('.dx-calendar-navigator-previous-view'), - 'nextYear': this.rootElement.find('.dx-calendar-navigator-next-year'), - 'nextView': this.rootElement.find('.dx-calendar-navigator-next-view') - }; - }, - dispose: function() { - this.rootElement.remove(); - this.calendar = null; - } - }), + extractInnerHTMLArray(elements) { + return this.extractArray(elements, function(element) { + return element.innerHTML; + }); + } + + extractInnerTextArray(elements) { + return this.extractArray(elements, function(element) { + return $(element).text(); + }); + } + + extractClassArray(elements) { + return this.extractArray(elements, function(element) { + return element.getAttribute('class') || ''; + }); + } + + typeIntoInput(dateString, input) { + const keyPress = $.Event('keypress'); + for(let i = 0; i < dateString.length; ++i) { + keyPress.key = dateString[i]; + input.val(input.val() + dateString[i]); + input.trigger(keyPress); + } + } +} - DateBoxFixture: DevExpress.ui.testing.BaseCalendarFixture.inherit({ - ctor: function(element, options) { - this.format = 'shortdate'; - this.rootElement = $(element); +class CalendarFixture extends BaseCalendarFixture { + constructor(options) { + super(); + this.rootElement = $(''); + this.rootElement.appendTo('body'); + this.calendar = $('#calendar') + .dxCalendar(options) + .dxCalendar('instance'); + this.navigatorLinks = { + 'prevYear': this.rootElement.find('.dx-calendar-navigator-previous-year'), + 'prevView': this.rootElement.find('.dx-calendar-navigator-previous-view'), + 'nextYear': this.rootElement.find('.dx-calendar-navigator-next-year'), + 'nextView': this.rootElement.find('.dx-calendar-navigator-next-view') + }; + } + + dispose() { + this.rootElement.remove(); + this.calendar = null; + } +} + +class DateBoxFixture extends BaseCalendarFixture { + constructor(element, options) { + super(); + this.format = 'shortdate'; + this.rootElement = $(element); - this.dateBox = this.rootElement - .dxDateBox($.extend(true, { - pickerType: 'calendar', - displayFormat: this.format, - calendarOptions: { monthViewType: DevExpress.ui.testing.MockMonthView } - }, options)) - .dxDateBox('instance'); - this.input = this.rootElement.find(TEXTEDITOR_INPUT_SELECTOR); - }, - dispose: function() { - this.rootElement.empty(); - $.cleanData(this.rootElement); - this.dateBox = null; - } - }) + this.dateBox = this.rootElement + .dxDateBox($.extend(true, { + pickerType: 'calendar', + displayFormat: this.format, + }, options)) + .dxDateBox('instance'); + this.input = this.rootElement.find(TEXTEDITOR_INPUT_SELECTOR); } -}); + + dispose() { + this.rootElement.empty(); + $.cleanData(this.rootElement); + this.dateBox = null; + } +} + +DevExpress.ui.testing.BaseCalendarFixture = BaseCalendarFixture; +DevExpress.ui.testing.CalendarFixture = CalendarFixture; +DevExpress.ui.testing.DateBoxFixture = DateBoxFixture;