test.cjs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. "use strict";
  2. exports.assertType = assertType;
  3. exports.fakeDate = fakeDate;
  4. exports.generateOffset = generateOffset;
  5. exports.resetDefaultOptions = resetDefaultOptions;
  6. var _vitest = require("./test/vitest");
  7. var _index = require("./addLeadingZeros.cjs");
  8. var _index2 = require("./defaultOptions.cjs");
  9. var _sinon = require("./test/sinon");
  10. function assertType(_value) {}
  11. function resetDefaultOptions() {
  12. (0, _index2.setDefaultOptions)({});
  13. }
  14. // This makes sure we create the consistent offsets across timezones, no matter where these tests are ran.
  15. function generateOffset(originalDate) {
  16. // Add the timezone.
  17. let offset = "";
  18. const tzOffset = originalDate.getTimezoneOffset();
  19. if (tzOffset !== 0) {
  20. const absoluteOffset = Math.abs(tzOffset);
  21. const hourOffset = (0, _index.addLeadingZeros)(
  22. Math.trunc(absoluteOffset / 60),
  23. 2,
  24. );
  25. const minuteOffset = (0, _index.addLeadingZeros)(absoluteOffset % 60, 2);
  26. // If less than 0, the sign is +, because it is ahead of time.
  27. const sign = tzOffset < 0 ? "+" : "-";
  28. offset = `${sign}${hourOffset}:${minuteOffset}`;
  29. } else {
  30. offset = "Z";
  31. }
  32. return offset;
  33. }
  34. function fakeDate(date) {
  35. let clock;
  36. function fakeNow(date) {
  37. clock?.restore();
  38. clock = _sinon.default.useFakeTimers(+date);
  39. }
  40. (0, _vitest.beforeEach)(() => {
  41. fakeNow(+date);
  42. });
  43. (0, _vitest.afterEach)(() => {
  44. clock?.restore();
  45. clock = undefined;
  46. });
  47. return { fakeNow };
  48. }