You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

weekdayRange.js 1.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /**
  2. * Module dependencies.
  3. */
  4. var assert = require('assert');
  5. var weekdayRange = require('../weekdayRange');
  6. var vanillaGetUTCDay = Date.prototype.getUTCDay;
  7. var vanillaGetDay = Date.prototype.getDay;
  8. describe('hooks', function() {
  9. before(function() {
  10. Date.prototype.getDay = function() { return 6; } // Setting local weekday as SAT(6)
  11. Date.prototype.getUTCDay = function() { return 5; } // Setting UTC weekday as FRI(5)
  12. });
  13. after(function() {
  14. Date.prototype.getUTCDay = vanillaGetUTCDay;
  15. Date.prototype.getDay = vanillaGetDay;
  16. });
  17. describe('weekdayRange(wd1, wd2, gmt)', function () {
  18. var tests = [
  19. ["MON", "FRI", false],
  20. ["MON", "FRI", "GMT", true],
  21. ["SAT", true],
  22. ["SAT", "GMT", false],
  23. ["FRI", "MON", true],
  24. ["SAT", "MON", "GMT", false],
  25. ["SOME", "RANDOM", false],
  26. ["RANDOM", false],
  27. ["RANDOM", "VALUE", "IST", false],
  28. ];
  29. tests.forEach(function (test) {
  30. var expected = test.pop();
  31. it('should return `' + expected +'` for "' + test.join('", "') + '"', function () {
  32. assert.equal(expected, weekdayRange(test[0], test[1], test[2]));
  33. });
  34. });
  35. });
  36. });