| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- var vows = require('vows');
- var assert = require('assert');
- require('../lib/date-utils.js');
- function pad(str, length) {
- str = String(str);
- while (str.length < length) {
- str = '0' + str;
- }
- return str;
- }
- vows.describe('Date Format').addBatch({
- 'can return month abbreviations as static method': {
- topic: function () { return new Date(123456789); },
- 'returns the correct abbreviated month': function (date) {
- assert.equal(date.getMonthAbbr(), 'Jan');
- }
- },
-
- 'can return month as static method': {
- topic: function () { return new Date(123456789); },
- 'returns the correct month': function (date) {
- assert.equal(date.getMonthAbbr(), 'Jan');
- }
- },
-
- 'can return common log formatted string': {
- topic: function () { return new Date(Date.UTC(2011, 0, 1, 1, 1, 1, 0)); },
- 'returns the correct clf string': function (date) {
- var tz = pad(Math.abs(date.getTimezoneOffset() / 0.6), 4);
- if (date.getTimezoneOffset() > 0) {
- tz = '-' + tz;
- }
-
- date = new Date(date.valueOf() + date.getTimezoneOffset() * 60000);
- assert.equal(date.toCLFString(), '01/Jan/2011:01:01:01 ' + tz);
- }
- },
- 'can return correctly formatted toFormat': {
- topic: function () { var topic = new Date(2011, 2, 1);
- topic.addHours(13)
- .addMinutes(11)
- .addSeconds(41)
- .addMilliseconds(23);
- return topic;
- },
- 'returns correctly': function (date) {
- assert.equal(date.toFormat('YYYY'), '2011');
- assert.equal(date.toFormat('YY'), '11');
- assert.equal(date.toFormat('M'), '3');
- assert.equal(date.toFormat('MM'), '03');
- assert.equal(date.toFormat('MMM'), 'Mar');
- assert.equal(date.toFormat('MMMM'), 'March');
- assert.equal(date.toFormat('D'), '1');
- assert.equal(date.toFormat('DD'), '01');
- assert.equal(date.toFormat('DDD'), 'Tue');
- assert.equal(date.toFormat('DDDD'), 'Tuesday');
- assert.equal(date.toFormat('H'), '1');
- assert.equal(date.toFormat('HH'), '01');
- assert.equal(date.toFormat('HH24'), '13');
- assert.equal(date.toFormat('MI'), '11');
- assert.equal(date.toFormat('SS'), '41');
- assert.equal(date.toFormat('LL'), '023');
- },
- 'returns complex formats correct': function (date) {
- assert.equal(date.toFormat('DDD-MMM-YYYY'), 'Tue-Mar-2011');
- assert.equal(date.toFormat('DD/MM/YY'), '01/03/11');
- assert.equal(date.toFormat('D:M:YY'), '1:3:11');
- }
- },
- 'can return correctly formatted toUTCFormat': {
- topic: function () {
- return topic = new Date(Date.UTC(2011, 2, 1, 13, 11, 41, 23));
- },
- 'returns correctly': function (date) {
- assert.equal(date.toUTCFormat('YYYY'), '2011');
- assert.equal(date.toUTCFormat('YY'), '11');
- assert.equal(date.toUTCFormat('M'), '3');
- assert.equal(date.toUTCFormat('MM'), '03');
- assert.equal(date.toUTCFormat('MMM'), 'Mar');
- assert.equal(date.toUTCFormat('MMMM'), 'March');
- assert.equal(date.toUTCFormat('D'), '1');
- assert.equal(date.toUTCFormat('DD'), '01');
- assert.equal(date.toUTCFormat('DDD'), 'Tue');
- assert.equal(date.toUTCFormat('DDDD'), 'Tuesday');
- assert.equal(date.toUTCFormat('H'), '1');
- assert.equal(date.toUTCFormat('HH'), '01');
- assert.equal(date.toUTCFormat('HH24'), '13');
- assert.equal(date.toUTCFormat('MI'), '11');
- assert.equal(date.toUTCFormat('SS'), '41');
- assert.equal(date.toUTCFormat('LL'), '023');
- },
- 'returns complex formats correct': function (date) {
- assert.equal(date.toUTCFormat('DDD-MMM-YYYY'), 'Tue-Mar-2011');
- assert.equal(date.toUTCFormat('DD/MM/YY'), '01/03/11');
- assert.equal(date.toUTCFormat('D:M:YY'), '1:3:11');
- }
- },
- 'can return correct months': {
- topic: function () { return new Date(2011, 0, 1); },
- 'returns Jan correcty': function (date) { assert.equal(date.addMonths(0).toFormat('MMM'), 'Jan'); },
- 'returns Feb correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Feb'); },
- 'returns Mar correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Mar'); },
- 'returns Apr correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Apr'); },
- 'returns May correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'May'); },
- 'returns Jun correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Jun'); },
- 'returns Jul correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Jul'); },
- 'returns Aug correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Aug'); },
- 'returns Sep correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Sep'); },
- 'returns Oct correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Oct'); },
- 'returns Nov correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Nov'); },
- 'returns Dec correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Dec'); },
- },
- 'can return database formatted string': {
- topic: function () { return new Date(Date.UTC(2011, 0, 1, 1, 1, 1, 0)); },
- 'returns the correct database string': function (date) {
- assert.equal(date.toDBString(), '2011-01-01 01:01:01');
- }
- },
-
- 'when passing an argument to toYMD': {
- topic: function () { return new Date(2011, 0, 1, 1, 1, 1, 0).toYMD('-'); },
- 'the correct string is returned': function (topic) {
- assert.equal(topic, '2011-01-01');
- }
- },
- 'when passing an empty argument to toYMD': {
- topic: function () { return new Date(2011, 0, 1, 1, 1, 1, 0).toYMD(''); },
- 'the correct string is returned': function (topic) {
- assert.equal(topic, '20110101');
- }
- },
- 'when passing no argument to toYMD': {
- topic: function () { return new Date(2011, 0, 1, 1, 1, 1, 0).toYMD(); },
- 'the correct default is chosen and the string is returned': function (topic) {
- assert.equal(topic, '2011-01-01');
- }
- }
- }).export(module);
|