Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@
"@babel/cli": "^7.12.1",
"@babel/core": "^7.12.3",
"@babel/preset-env": "^7.12.1",
"mocha": "^8.2.1",
"underscore": "1.7.0"
"mocha": "^8.2.1"
},
"engines": {
"node": "*"
Expand Down
75 changes: 38 additions & 37 deletions test/test_formats.js
Original file line number Diff line number Diff line change
@@ -1,38 +1,36 @@
var assert = require('assert');
var assert = require("assert");

var _ = require('underscore');

var dateFormat = require('../lib/dateformat');
var dateFormat = require("../lib/dateformat");

var expects = {
'default': 'Wed Nov 26 2014 13:19:44',
'shortDate': '11/26/14',
'mediumDate': 'Nov 26, 2014',
'longDate': 'November 26, 2014',
'fullDate': 'Wednesday, November 26, 2014',
'shortTime': '1:19 PM',
'mediumTime': '1:19:44 PM',
'longTime': '1:19:44 PM %TZ_PREFIX%%TZ_OFFSET%',
'isoDate': '2014-11-26',
'isoTime': '13:19:44',
'isoDateTime': '2014-11-26T13:19:44%TZ_OFFSET%',
'isoUtcDateTime': '',
'expiresHeaderFormat': 'Wed, 26 Nov 2014 13:19:44 %TZ_PREFIX%%TZ_OFFSET%'
default: "Wed Nov 26 2014 13:19:44",
shortDate: "11/26/14",
mediumDate: "Nov 26, 2014",
longDate: "November 26, 2014",
fullDate: "Wednesday, November 26, 2014",
shortTime: "1:19 PM",
mediumTime: "1:19:44 PM",
longTime: "1:19:44 PM %TZ_PREFIX%%TZ_OFFSET%",
isoDate: "2014-11-26",
isoTime: "13:19:44",
isoDateTime: "2014-11-26T13:19:44%TZ_OFFSET%",
isoUtcDateTime: "",
expiresHeaderFormat: "Wed, 26 Nov 2014 13:19:44 %TZ_PREFIX%%TZ_OFFSET%",
};

function pad(num, size) {
var s = num + '';
while (s.length < size) {
s = '0' + s;
}
return s;
var s = num + "";
while (s.length < size) {
s = "0" + s;
}
return s;
}

function parseOffset(date) {
var offset = date.getTimezoneOffset();
var hours = Math.floor(-1 * offset / 60);
var minutes = (-1 * offset) - (hours * 60);
var sign = offset > 0 ? '-' : '+';
var hours = Math.floor((-1 * offset) / 60);
var minutes = -1 * offset - hours * 60;
var sign = offset > 0 ? "-" : "+";
return {
offset: offset,
hours: hours,
Expand All @@ -46,28 +44,31 @@ function timezoneOffset(date) {
return offset.sign + pad(offset.hours, 2) + pad(offset.minutes, 2);
}

describe('dateformat([now], [mask])', function() {
_.each(dateFormat.masks, function(value, key) {
it('should format `' + key + '` mask', function(done) {
describe("dateformat([now], [mask])", function () {
Object.keys(dateFormat.masks).forEach(function (key) {
it("should format `" + key + "` mask", function (done) {
var now = new Date(2014, 10, 26, 13, 19, 44);
var tzOffset = timezoneOffset(now);
var expected = expects[key].replace(/%TZ_PREFIX%/, 'GMT')
.replace(/%TZ_OFFSET%/g, tzOffset)
.replace(/GMT\+0000/g, 'UTC');
if (key === 'isoUtcDateTime') {
var expected = expects[key]
.replace(/%TZ_PREFIX%/, "GMT")
.replace(/%TZ_OFFSET%/g, tzOffset)
.replace(/GMT\+0000/g, "UTC");
if (key === "isoUtcDateTime") {
var offset = parseOffset(now);
now.setHours(now.getHours() - offset.hours,
now.getMinutes() - offset.minutes);
var expected = now.toISOString().replace(/\.000/g, '');
now.setHours(
now.getHours() - offset.hours,
now.getMinutes() - offset.minutes
);
var expected = now.toISOString().replace(/\.000/g, "");
}
var actual = dateFormat(now, key);
assert.strictEqual(actual, expected);
done();
});
});
it('should use `default` mask, when `mask` is empty', function(done) {
it("should use `default` mask, when `mask` is empty", function (done) {
var now = new Date(2014, 10, 26, 13, 19, 44);
var expected = expects['default'];
var expected = expects["default"];
var actual = dateFormat(now);

assert.strictEqual(actual, expected);
Expand Down