date-parser-test.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /*
  2. * time-span-test.js: Tests for the TimeSpan module.
  3. *
  4. * (C) Charlie Robbins
  5. * MIT LICENSE
  6. *
  7. */
  8. var vows = require('vows'),
  9. assert = require('assert'),
  10. timeSpan = require('../lib/time-span');
  11. vows.describe('time-span/date-time').addBatch({
  12. "When using the TimeSpan module": {
  13. "the parseDate() method": {
  14. "when passed a TimeSpan string using ISO8601 with explicit time modifiers": {
  15. "which do not carry over": {
  16. "should return the correct value": function () {
  17. var target = new Date(Date.parse('2010-04-03T10:04:15Z')),
  18. parsed = timeSpan.parseDate('2010-04-03T12:34:15Z-2HOURS30MINUTES');
  19. assert.equal(target.toString(), parsed.toString());
  20. }
  21. },
  22. "which carry under": {
  23. "should return the correct value": function () {
  24. var target = new Date(Date.parse('2010-03-29T12:34:15Z')),
  25. parsed = timeSpan.parseDate('2010-04-01T12:34:15Z-72HOURS');
  26. assert.equal(target.toString(), parsed.toString());
  27. }
  28. },
  29. "which carry under a leap year": {
  30. "should return the correct value": function () {
  31. var target = new Date(Date.parse('2007-03-31T12:00:00Z')),
  32. parsed = timeSpan.parseDate('2010-03-31T12:00:00Z-1096DAYS');
  33. assert.equal(target.toString(), parsed.toString());
  34. }
  35. },
  36. "which carry over": {
  37. "should return the correct value": function () {
  38. var target = new Date(Date.parse('2013-04-03T12:34:15Z')),
  39. parsed = timeSpan.parseDate('2010-04-03T12:34:15Z+2YEARS365DAYS');
  40. assert.equal(target.toString(), parsed.toString());
  41. }
  42. }
  43. },
  44. "when passed a TimeSpan string using NOW with explicit time modifiers": {
  45. "which do not carry over": {
  46. "should return the correct value": function () {
  47. var now = new Date(Date.now()),
  48. parsed = timeSpan.parseDate('NOW-2HOURS');
  49. now.setHours(now.getHours() - 2);
  50. assert.equal(now.getHours(), parsed.getHours());
  51. }
  52. },
  53. "which carry under": {
  54. "should return the correct value": function () {
  55. var now = new Date(Date.now()),
  56. parsed = timeSpan.parseDate('NOW-72HOURS');
  57. now.setHours(now.getHours() - 72);
  58. assert.equal(now.getHours(), parsed.getHours());
  59. }
  60. }
  61. }
  62. }
  63. }
  64. }).export(module);