dates.spec.jsx 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import {setDateToTime, intervalToMilliseconds, parsePeriodToHours} from 'app/utils/dates';
  2. describe('utils.dates', function() {
  3. describe('setDateToTime', function() {
  4. it('can set new time for current date', function() {
  5. const date = new Date();
  6. const newDate = setDateToTime(date, '11:11');
  7. expect(newDate).toEqual(new Date(1508238680000));
  8. });
  9. it('can set new time (including seconds) for current date', function() {
  10. const date = new Date();
  11. const newDate = setDateToTime(date, '11:11:11');
  12. expect(newDate).toEqual(new Date(1508238671000));
  13. });
  14. it('can set new time in local for current date', function() {
  15. const date = new Date();
  16. const newDate = setDateToTime(date, '11:11:11', {local: true});
  17. expect(newDate).toEqual(new Date(1508166671000));
  18. });
  19. });
  20. describe('intervalToMilliseconds()', function() {
  21. it('can convert standard formats', function() {
  22. expect(intervalToMilliseconds('24h')).toBe(86400000);
  23. expect(intervalToMilliseconds('30m')).toBe(1800000);
  24. expect(intervalToMilliseconds('15m')).toBe(900000);
  25. expect(intervalToMilliseconds('5m')).toBe(300000);
  26. expect(intervalToMilliseconds('1m')).toBe(60000);
  27. });
  28. it('can convert arbitrary formats', function() {
  29. expect(intervalToMilliseconds('1h')).toBe(3600000);
  30. expect(intervalToMilliseconds('2m')).toBe(120000);
  31. });
  32. });
  33. describe('parsePeriodToHours()', function() {
  34. it('can convert standard formats', function() {
  35. expect(parsePeriodToHours('30s').toFixed(4)).toBe('0.0083');
  36. expect(parsePeriodToHours('1m').toFixed(4)).toBe('0.0167');
  37. expect(parsePeriodToHours('1h')).toBe(1);
  38. expect(parsePeriodToHours('24h')).toBe(24);
  39. expect(parsePeriodToHours('1d')).toBe(24);
  40. expect(parsePeriodToHours('2w')).toBe(336);
  41. });
  42. });
  43. });