2 var vows = require('vows')
3 , assert = require('assert')
4 , dateFormat = require('../lib/date_format');
6 function createFixedDate() {
7 return new Date(2010, 0, 11, 14, 31, 30, 5);
10 vows.describe('date_format').addBatch({
12 topic: createFixedDate,
13 'should format a date as string using a pattern': function(date) {
15 dateFormat.asString(dateFormat.DATETIME_FORMAT, date),
16 "11 01 2010 14:31:30.005"
19 'should default to the ISO8601 format': function(date) {
21 dateFormat.asString(date),
22 '2010-01-11 14:31:30.005'
25 'should provide a ISO8601 with timezone offset format': function() {
26 var date = createFixedDate();
27 date.setMinutes(date.getMinutes() - date.getTimezoneOffset() - 660);
28 date.getTimezoneOffset = function() { return -660; };
30 dateFormat.asString(dateFormat.ISO8601_WITH_TZ_OFFSET_FORMAT, date),
31 "2010-01-11T14:31:30+1100"
33 date = createFixedDate();
34 date.setMinutes(date.getMinutes() - date.getTimezoneOffset() + 120);
35 date.getTimezoneOffset = function() { return 120; };
37 dateFormat.asString(dateFormat.ISO8601_WITH_TZ_OFFSET_FORMAT, date),
38 "2010-01-11T14:31:30-0200"
42 'should provide a just-the-time format': function(date) {
44 dateFormat.asString(dateFormat.ABSOLUTETIME_FORMAT, date),
48 'should provide a custom format': function() {
49 var date = createFixedDate();
50 date.setMinutes(date.getMinutes() - date.getTimezoneOffset() + 120);
51 date.getTimezoneOffset = function() { return 120; };
53 dateFormat.asString("O.SSS.ss.mm.hh.dd.MM.yy", date),
54 '-0200.005.30.31.14.11.01.10'