@kiwicom/smart-faq
Version:
106 lines (96 loc) • 3.81 kB
JavaScript
require("core-js/modules/es.array.iterator");
require("core-js/modules/es.object.get-own-property-descriptor");
require("core-js/modules/es.object.to-string");
require("core-js/modules/web.dom-collections.iterator");
var React = _interopRequireWildcard(require("react"));
var _enzyme = require("enzyme");
var _Language = require("../../context/Language");
var dateUtils = _interopRequireWildcard(require("../dateUtils"));
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
// @flow
describe('date utils', function () {
describe('formatCountDown', function () {
it('should return number of remaining days if hoursLeft > 24', function () {
var result = dateUtils.formatCountDown({
hoursLeft: 100.423
});
expect(result).toEqual({
format: 'days',
daysLeft: 4
});
});
it('should return remaining time in minutes', function () {
var result = dateUtils.formatCountDown({
hoursLeft: 20.423
});
expect(result).toEqual({
format: 'hours_minutes',
hoursLeft: 20,
minutesLeft: 25
});
});
it('should return remaining time in hours', function () {
var result = dateUtils.formatCountDown({
hoursLeft: 20.001
});
expect(result).toEqual({
format: 'hours',
hoursLeft: 20
});
});
});
describe('formatDate', function () {
it('should format datestring', function () {
var wrapper = (0, _enzyme.render)(React.createElement(_Language.LanguageContext.Provider, {
value: "us"
}, React.createElement("div", null, React.createElement(dateUtils.FormatDate, {
dateString: "2018-05-04T15:02:02.511Z"
}))));
expect(wrapper.text()).toContain('Fri, May 4');
});
});
describe('formatDepartureDate', function () {
it('should format UTC string to DD/MM/YYYY', function () {
var departureDate = '2017-11-23T20:40:00.000Z';
expect(dateUtils.formatDepartureDate(departureDate)).toBe('23/11/2017');
});
});
describe('formatTimeDuration', function () {
it('should format duration', function () {
var hoursAndMinutes = (0, _enzyme.shallow)(React.createElement(dateUtils.formatTimeDuration, {
mins: 90,
isLayover: true
}));
expect(hoursAndMinutes.props().values.numberHours).toBe(1);
expect(hoursAndMinutes.props().values.numberMins).toBe(30);
var onlyMinutes = (0, _enzyme.shallow)(React.createElement(dateUtils.formatTimeDuration, {
mins: 32,
isLayover: true
}));
expect(onlyMinutes.props().values.numberMins).toBe(32);
});
});
describe('timeDurationTranslationData', function () {
it('should return object with translation key and translation variables', function () {
var duration = {
mins: 102,
isLayover: false
};
var expected = {
translationKey: 'smartfaq.single_booking_page.segment.more_than_one_hour',
translationVariables: {
numberHours: 1,
numberMins: 42
}
};
expect(dateUtils.timeDurationTranslationData(duration)).toEqual(expected);
});
});
describe('formatHour', function () {
it('should format duration', function () {
var myDate = '2018-05-14T15:31:27.464Z';
expect(dateUtils.formatHour(myDate)).toBe('3:31 PM');
});
});
});
;