@kiwicom/smart-faq
Version:
Smart FAQ
98 lines (92 loc) • 3.21 kB
JavaScript
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var React = _interopRequireWildcard(require("react"));
var _enzyme = require("enzyme");
var _Language = require("../../context/Language");
var dateUtils = _interopRequireWildcard(require("../dateUtils"));
// @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');
});
});
});
;