diff options
Diffstat (limited to 'test/components/dateRangeSelector.test.js')
-rw-r--r-- | test/components/dateRangeSelector.test.js | 303 |
1 files changed, 0 insertions, 303 deletions
diff --git a/test/components/dateRangeSelector.test.js b/test/components/dateRangeSelector.test.js deleted file mode 100644 index 134d6c6..0000000 --- a/test/components/dateRangeSelector.test.js +++ /dev/null @@ -1,303 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017-2018 Amdocs - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ -import React from "react"; -import TestUtils from "react-dom/test-utils"; -import {Provider} from "react-redux"; -import {expect} from "chai"; -import {moment} from "moment"; -import store from "app/AppStore.js"; -import DateRangeSelector from "generic-components/dateRangeSelector/DateRangeSelector.jsx"; -import DateRangeSelectorActions from "generic-components/dateRangeSelector/DateRangeSelectorActions.js"; -import { - dateRangeSelectorActionTypes, - TODAY, - YESTERDAY, - LAST_WEEK, - LAST_MONTH, - CUSTOM, - ICON_CLASS_CALENDAR, - ICON_CLASS_DOWN_CARET, - ERROR_UNKNOWN_PERIOD} from "generic-components/dateRangeSelector/DateRangeSelectorConstants.js"; -import reducer from "generic-components/dateRangeSelector/DateRangeSelectorReducer.js"; -import {dateRangeActionTypes, DATE_PICKER_PLACEHOLDER} from "generic-components/dateRange/DateRangeConstants.js"; -import {MESSAGE_LEVEL_DANGER} from "utils/GlobalConstants.js"; - -describe("Date Range Selector Test Suite", function() { - - beforeEach(function () { - this.component = TestUtils.renderIntoDocument( <Provider store={store}><DateRangeSelector /></Provider>); - }); - - // test structure - it("Date Range Selector - Validate selector button", function () { - var moment = require('moment'); - let currentDate = moment(new Date()).format(DATE_PICKER_PLACEHOLDER); - let button = TestUtils.findRenderedDOMComponentWithTag(this.component, 'button'); - expect(button).exists; - expect(button.childNodes.length).to.equal(3); - expect(button.childNodes[0].className).to.have.string(ICON_CLASS_CALENDAR); - expect(button.childNodes[1].innerHTML).to.have.string(currentDate + ' - ' + currentDate); - expect(button.childNodes[2].className).to.have.string(ICON_CLASS_DOWN_CARET); - }); - - it("Date Range Selector - Validate quick pick options", function () { - let button = TestUtils.findRenderedDOMComponentWithTag(this.component, 'button'); - TestUtils.Simulate.click(button); - - let popoverMenu = document.body.getElementsByClassName('popover-content'); - // TODO - need to figure out how to get the popover menu (above doesn't work) - }); - - // test reducer - it("Date Range Selector Reducer ... Vaidate DATE_RANGE_CHANGE event)", function() { - var moment = require('moment'); - const initialState = { - startDate: moment(new Date('07/20/2016')), - endDate: moment(new Date('07/09/2016')), - period: CUSTOM, - periodErrText: 'some error text', - periodErrSev: 'some error severity' - }; - const rangeChangeAction = { - type: dateRangeActionTypes.DATE_RANGE_CHANGE, - data: { - dateRange: { - startDate: moment(new Date('05/04/2016')), - endDate: moment(new Date('06/05/2016')) - }, - errorMsg: '' - }}; - const newState = reducer(initialState, rangeChangeAction); - expect(newState.startDate).to.exist; - expect(newState.startDate.toDate().getTime()).to.equal(new Date('05/04/2016').getTime()); - expect(newState.endDate).to.exist; - expect(newState.endDate.toDate().getTime()).to.equal(new Date('06/05/2016').getTime()); - expect(newState.period).to.equal(CUSTOM); - expect(newState.periodErrText).to.equal(''); - expect(newState.periodErrSev).to.equal(''); - }); - it("Date Range Selector Reducer ... Vaidate INVALID_DATE_RANGE event)", function() { - var moment = require('moment'); - const initialState = {}; - const rangeChangeAction = { - type: dateRangeActionTypes.INVALID_DATE_RANGE, - data: { - dateRange: { - startDate: moment(new Date('07/04/2016')), - endDate: moment(new Date('06/05/2016')) - }, - errorMsg: 'some eror message' - }}; - const newState = reducer(initialState, rangeChangeAction); - expect(newState.startDate).to.exist; - expect(newState.startDate.toDate().getTime()).to.equal(new Date('07/04/2016').getTime()); - expect(newState.endDate).to.exist; - expect(newState.endDate.toDate().getTime()).to.equal(new Date('06/05/2016').getTime()); - expect(newState.period).to.not.exist; - expect(newState.periodErrText).to.equal('some eror message'); - expect(newState.periodErrSev).to.equal(MESSAGE_LEVEL_DANGER); - }); - it("Date Range Selector Reducer ... Vaidate PERIOD_CHANGE event)", function() { - var moment = require('moment'); - const initialState = { - startDate: moment(new Date('07/20/2016')), - endDate: moment(new Date('07/09/2016')), - period: CUSTOM, - periodErrText: 'some error text', - periodErrSev: 'some error severity' - }; - const rangeChangeAction = { - type: dateRangeSelectorActionTypes.EVENT_PERIOD_CHANGE, - data: { - dateRange: { - startDate: moment(new Date('07/04/2016')), - endDate: moment(new Date('07/05/2016')) - }, - period: YESTERDAY - } - }; - const newState = reducer(initialState, rangeChangeAction); - expect(newState.startDate).to.exist; - expect(newState.startDate.toDate().getTime()).to.equal(new Date('07/04/2016').getTime()); - expect(newState.endDate).to.exist; - expect(newState.endDate.toDate().getTime()).to.equal(new Date('07/05/2016').getTime()); - expect(newState.period).to.equal(YESTERDAY); - expect(newState.periodErrText).to.equal(''); - expect(newState.periodErrSev).to.equal(''); - }); - - // test Actions - it("Date Range Selector Action - test EVENT_PERIOD_CHANGE (period = Today)", function() { - var moment = require('moment'); - const startDate = moment(new Date()); - const endDate = moment(new Date()); - const period = TODAY; - - const results = DateRangeSelectorActions.onPeriodChange(startDate, endDate, period); - - const expectedStartTime = moment(new Date()); - setTime(expectedStartTime, 0, 0, 0); - const expectedEndTime = moment(new Date()); - setTime(expectedEndTime, 23, 59, 59); - const expectedAction = buildExpectedPeriodChangeAction(expectedStartTime, expectedEndTime, TODAY); - - expect(results.type).to.equal(expectedAction.type); - validateDates(results.data.dateRange.startDate, expectedAction.data.dateRange.startDate); - validateDates(results.data.dateRange.endDate, expectedAction.data.dateRange.endDate); - expect(results.data.period).to.equal(expectedAction.data.period); - }); - it("Date Range Selector Action - test EVENT_PERIOD_CHANGE (period = Yesterday)", function() { - var moment = require('moment'); - const startDate = moment(new Date()); - const endDate = moment(new Date()); - const period = YESTERDAY; - - const results = DateRangeSelectorActions.onPeriodChange(startDate, endDate, period); - - const expectedStartTime = moment(new Date()).subtract(1, 'days'); - setTime(expectedStartTime, 0, 0, 0); - const expectedEndTime = moment(new Date()); - setTime(expectedEndTime, 23, 59, 59); - const expectedAction = buildExpectedPeriodChangeAction(expectedStartTime, expectedEndTime, YESTERDAY); - - expect(results.type).to.equal(expectedAction.type); - validateDates(results.data.dateRange.startDate, expectedAction.data.dateRange.startDate); - validateDates(results.data.dateRange.endDate, expectedAction.data.dateRange.endDate); - expect(results.data.period).to.equal(expectedAction.data.period); - }); - it("Date Range Selector Action - test EVENT_PERIOD_CHANGE (period = Last Week)", function() { - var moment = require('moment'); - const startDate = moment(new Date()); - const endDate = moment(new Date()); - const period = LAST_WEEK; - - const results = DateRangeSelectorActions.onPeriodChange(startDate, endDate, period); - - const expectedStartTime = moment(new Date()).subtract(7, 'days'); - setTime(expectedStartTime, 0, 0, 0); - const expectedEndTime = moment(new Date()); - setTime(expectedEndTime, 23, 59, 59); - const expectedAction = buildExpectedPeriodChangeAction(expectedStartTime, expectedEndTime, LAST_WEEK); - - expect(results.type).to.equal(expectedAction.type); - validateDates(results.data.dateRange.startDate, expectedAction.data.dateRange.startDate); - validateDates(results.data.dateRange.endDate, expectedAction.data.dateRange.endDate); - expect(results.data.period).to.equal(expectedAction.data.period); - }); - it("Date Range Selector Action - test EVENT_PERIOD_CHANGE (period = Last Month)", function() { - var moment = require('moment'); - const startDate = moment(new Date()); - const endDate = moment(new Date()); - const period = LAST_MONTH; - - const results = DateRangeSelectorActions.onPeriodChange(startDate, endDate, period); - - const expectedStartTime = moment(new Date()).subtract(1, 'months'); - setTime(expectedStartTime, 0, 0, 0); - const expectedEndTime = moment(new Date()); - setTime(expectedEndTime, 23, 59, 59); - const expectedAction = buildExpectedPeriodChangeAction(expectedStartTime, expectedEndTime, LAST_MONTH); - - expect(results.type).to.equal(expectedAction.type); - validateDates(results.data.dateRange.startDate, expectedAction.data.dateRange.startDate); - validateDates(results.data.dateRange.endDate, expectedAction.data.dateRange.endDate); - expect(results.data.period).to.equal(expectedAction.data.period); - }); - it("Date Range Selector Action - test EVENT_PERIOD_CHANGE (period = Custom)", function() { - var moment = require('moment'); - const startDate = moment(new Date()).subtract(3, 'months'); - const endDate = moment(new Date()).add(6, 'days'); - const period = CUSTOM; - - const results = DateRangeSelectorActions.onPeriodChange(startDate, endDate, period); - - setTime(startDate, 0, 0, 0); - setTime(endDate, 23, 59, 59); - const expectedAction = buildExpectedPeriodChangeAction(startDate, endDate, CUSTOM); - - expect(results.type).to.equal(expectedAction.type); - validateDates(results.data.dateRange.startDate, expectedAction.data.dateRange.startDate); - validateDates(results.data.dateRange.endDate, expectedAction.data.dateRange.endDate); - expect(results.data.period).to.equal(expectedAction.data.period); - }); - it("Date Range Selector Action - test EVENT_PERIOD_CHANGE (period = Unknown)", function() { - var moment = require('moment'); - const startDate = moment(new Date()).subtract(3, 'months'); - const endDate = moment(new Date()).add(6, 'days'); - const period = 'Some Unknown Period'; - - const results = DateRangeSelectorActions.onPeriodChange(startDate, endDate, period); - - let expectedErrorMsg = ERROR_UNKNOWN_PERIOD + ': ' + period; - const expectedAction = buildExpectedUnknownPeriodAction(startDate, endDate, period, expectedErrorMsg); - - expect(results.type).to.deep.equal(expectedAction.type); - validateDates(results.data.dateRange.startDate, expectedAction.data.dateRange.startDate); - validateDates(results.data.dateRange.endDate, expectedAction.data.dateRange.endDate); - expect(results.data.period).to.equal(expectedAction.data.period); - }); - - // TODO - need tests to confirm DateRangeSelectorActions.onPeriodChange is called when clicking any of the 'quick link' periods - - - // helper functions - function setTime(moment, hours, minutes, seconds) { - moment.toDate(); - moment.hour(hours); - moment.minute(minutes); - moment.second(seconds); - } - - function validateDates(actualDate, expectedDates) { - expect(actualDate.toDate().getYear()).to.equal(expectedDates.toDate().getYear()); - expect(actualDate.toDate().getMonth()).to.equal(expectedDates.toDate().getMonth()); - expect(actualDate.toDate().getDay()).to.equal(expectedDates.toDate().getDay()); - expect(actualDate.toDate().getHours()).to.equal(expectedDates.toDate().getHours()); - expect(actualDate.toDate().getMinutes()).to.equal(expectedDates.toDate().getMinutes()); - } - - function buildExpectedPeriodChangeAction(start, end, period) { - return { - type: dateRangeSelectorActionTypes.EVENT_PERIOD_CHANGE, - data: { - dateRange: { - startDate: start, - endDate: end - }, - period: period - } - }; - } - - function buildExpectedUnknownPeriodAction(start, end, period, errorMsg) { - return { - type: dateRangeSelectorActionTypes.EVENT_PERIOD_ERROR, - data: { - dateRange: { - startDate: start, - endDate: end - }, - period: period, - errorMsg: errorMsg - } - }; - } -}); |