Skip to content

Commit

Permalink
make tests independent of the client timezone
Browse files Browse the repository at this point in the history
  • Loading branch information
martinandert committed Mar 27, 2015
1 parent aed5e64 commit 5b95052
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 38 deletions.
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
},
"devDependencies": {
"jshint": "^2.5.10",
"mocha": "^2.0.1"
"mocha": "^2.0.1",
"time": "^0.11.1"
}
}
77 changes: 40 additions & 37 deletions spec.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
var assert = require('assert');
var translate = require('./');
var Instance = translate.Instance;
var assert = require('assert');
var time = require('time');
var translate = require('./');
var Instance = translate.Instance;

describe('translate', function() {
var instance;
Expand Down Expand Up @@ -582,34 +583,35 @@ describe('translate', function() {
});

describe('when called with a date as first argument', function() {
var date = new Date('Thu Feb 6 2014 07:09:04 GMT+0100 (CET)');
var date = new time.Date('Thu Feb 6 2014 05:09:04 GMT+0100 (CET)');
date.setTimezone('America/Chicago');

describe('without providing options as second argument', function() {
it('returns the default localization for that date', function() {
var result = instance.localize(date);
assert.equal(result, 'Thu, 6 Feb 2014 07:09');
assert.equal(result, 'Wed, 5 Feb 2014 22:09');
});
});

describe('providing a `format` key in the options', function() {
describe('with format = "default"', function() {
it('returns the default localization for that date', function() {
var result = instance.localize(date, { format: 'default' });
assert.equal(result, 'Thu, 6 Feb 2014 07:09');
assert.equal(result, 'Wed, 5 Feb 2014 22:09');
});
});

describe('with format = "short"', function() {
it('returns the short localization for that date', function() {
var result = instance.localize(date, { format: 'short' });
assert.equal(result, '6 Feb 07:09');
assert.equal(result, '5 Feb 22:09');
});
});

describe('with format = "long"', function() {
it('returns the long localization for that date', function() {
var result = instance.localize(date, { format: 'long' });
assert.equal(result, 'Thursday, February 6th, 2014 07:09:04 +01:00');
assert.equal(result, 'Wednesday, February 5th, 2014 22:09:04 -06:00');
});
});

Expand All @@ -625,21 +627,21 @@ describe('translate', function() {
describe('with type = "datetime"', function() {
it('returns the default localization for that date', function() {
var result = instance.localize(date, { type: 'datetime' });
assert.equal(result, 'Thu, 6 Feb 2014 07:09');
assert.equal(result, 'Wed, 5 Feb 2014 22:09');
});
});

describe('with type = "date"', function() {
it('returns the date localization for that date', function() {
var result = instance.localize(date, { type: 'date' });
assert.equal(result, 'Thu, 6 Feb 2014');
assert.equal(result, 'Wed, 5 Feb 2014');
});
});

describe('with type = "time"', function() {
it('returns the time localization for that date', function() {
var result = instance.localize(date, { type: 'time' });
assert.equal(result, '07:09');
assert.equal(result, '22:09');
});
});

Expand All @@ -655,63 +657,63 @@ describe('translate', function() {
describe('with type = "datetime" and format = "default"', function() {
it('returns the default localization for that date', function() {
var result = instance.localize(date, { type: 'datetime', format: 'default' });
assert.equal(result, 'Thu, 6 Feb 2014 07:09');
assert.equal(result, 'Wed, 5 Feb 2014 22:09');
});
});

describe('with type = "datetime" and format = "short"', function() {
it('returns the short datetime localization for that date', function() {
var result = instance.localize(date, { type: 'datetime', format: 'short' });
assert.equal(result, '6 Feb 07:09');
assert.equal(result, '5 Feb 22:09');
});
});

describe('with type = "datetime" and format = "long"', function() {
it('returns the long datetime localization for that date', function() {
var result = instance.localize(date, { type: 'datetime', format: 'long' });
assert.equal(result, 'Thursday, February 6th, 2014 07:09:04 +01:00');
assert.equal(result, 'Wednesday, February 5th, 2014 22:09:04 -06:00');
});
});

describe('with type = "time" and format = "default"', function() {
it('returns the default time localization for that date', function() {
var result = instance.localize(date, { type: 'time', format: 'default' });
assert.equal(result, '07:09');
assert.equal(result, '22:09');
});
});

describe('with type = "time" and format = "short"', function() {
it('returns the short time localization for that date', function() {
var result = instance.localize(date, { type: 'time', format: 'short' });
assert.equal(result, '07:09');
assert.equal(result, '22:09');
});
});

describe('with type = "time" and format = "long"', function() {
it('returns the long time localization for that date', function() {
var result = instance.localize(date, { type: 'time', format: 'long' });
assert.equal(result, '07:09:04 +01:00');
assert.equal(result, '22:09:04 -06:00');
});
});

describe('with type = "date" and format = "default"', function() {
it('returns the default date localization for that date', function() {
var result = instance.localize(date, { type: 'date', format: 'default' });
assert.equal(result, 'Thu, 6 Feb 2014');
assert.equal(result, 'Wed, 5 Feb 2014');
});
});

describe('with type = "date" and format = "short"', function() {
it('returns the short date localization for that date', function() {
var result = instance.localize(date, { type: 'date', format: 'short' });
assert.equal(result, 'Feb 6');
assert.equal(result, 'Feb 5');
});
});

describe('with type = "date" and format = "long"', function() {
it('returns the long date localization for that date', function() {
var result = instance.localize(date, { type: 'date', format: 'long' });
assert.equal(result, 'Thursday, February 6th, 2014');
assert.equal(result, 'Wednesday, February 5th, 2014');
});
});

Expand All @@ -738,29 +740,29 @@ describe('translate', function() {
describe('without providing options as second argument', function() {
it('returns the default localization for that date', function() {
var result = instance.localize(date);
assert.equal(result, 'Do, 6. Feb 2014, 07:09 Uhr');
assert.equal(result, 'Mi, 5. Feb 2014, 22:09 Uhr');
});
});

describe('providing a `format` key in the options', function() {
describe('with format = "default"', function() {
it('returns the default localization for that date', function() {
var result = instance.localize(date, { format: 'default' });
assert.equal(result, 'Do, 6. Feb 2014, 07:09 Uhr');
assert.equal(result, 'Mi, 5. Feb 2014, 22:09 Uhr');
});
});

describe('with format = "short"', function() {
it('returns the short localization for that date', function() {
var result = instance.localize(date, { format: 'short' });
assert.equal(result, '06.02.14 07:09');
assert.equal(result, '05.02.14 22:09');
});
});

describe('with format = "long"', function() {
it('returns the long localization for that date', function() {
var result = instance.localize(date, { format: 'long' });
assert.equal(result, 'Donnerstag, 6. Februar 2014, 07:09:04 +01:00');
assert.equal(result, 'Mittwoch, 5. Februar 2014, 22:09:04 -06:00');
});
});

Expand All @@ -776,21 +778,21 @@ describe('translate', function() {
describe('with type = "datetime"', function() {
it('returns the default localization for that date', function() {
var result = instance.localize(date, { type: 'datetime' });
assert.equal(result, 'Do, 6. Feb 2014, 07:09 Uhr');
assert.equal(result, 'Mi, 5. Feb 2014, 22:09 Uhr');
});
});

describe('with type = "date"', function() {
it('returns the date localization for that date', function() {
var result = instance.localize(date, { type: 'date' });
assert.equal(result, 'Do, 6. Feb 2014');
assert.equal(result, 'Mi, 5. Feb 2014');
});
});

describe('with type = "time"', function() {
it('returns the time localization for that date', function() {
var result = instance.localize(date, { type: 'time' });
assert.equal(result, '07:09 Uhr');
assert.equal(result, '22:09 Uhr');
});
});

Expand All @@ -806,63 +808,63 @@ describe('translate', function() {
describe('with type = "datetime" and format = "default"', function() {
it('returns the default localization for that date', function() {
var result = instance.localize(date, { type: 'datetime', format: 'default' });
assert.equal(result, 'Do, 6. Feb 2014, 07:09 Uhr');
assert.equal(result, 'Mi, 5. Feb 2014, 22:09 Uhr');
});
});

describe('with type = "datetime" and format = "short"', function() {
it('returns the short datetime localization for that date', function() {
var result = instance.localize(date, { type: 'datetime', format: 'short' });
assert.equal(result, '06.02.14 07:09');
assert.equal(result, '05.02.14 22:09');
});
});

describe('with type = "datetime" and format = "long"', function() {
it('returns the long datetime localization for that date', function() {
var result = instance.localize(date, { type: 'datetime', format: 'long' });
assert.equal(result, 'Donnerstag, 6. Februar 2014, 07:09:04 +01:00');
assert.equal(result, 'Mittwoch, 5. Februar 2014, 22:09:04 -06:00');
});
});

describe('with type = "time" and format = "default"', function() {
it('returns the default time localization for that date', function() {
var result = instance.localize(date, { type: 'time', format: 'default' });
assert.equal(result, '07:09 Uhr');
assert.equal(result, '22:09 Uhr');
});
});

describe('with type = "time" and format = "short"', function() {
it('returns the short time localization for that date', function() {
var result = instance.localize(date, { type: 'time', format: 'short' });
assert.equal(result, '07:09');
assert.equal(result, '22:09');
});
});

describe('with type = "time" and format = "long"', function() {
it('returns the long time localization for that date', function() {
var result = instance.localize(date, { type: 'time', format: 'long' });
assert.equal(result, '07:09:04 +01:00');
assert.equal(result, '22:09:04 -06:00');
});
});

describe('with type = "date" and format = "default"', function() {
it('returns the default date localization for that date', function() {
var result = instance.localize(date, { type: 'date', format: 'default' });
assert.equal(result, 'Do, 6. Feb 2014');
assert.equal(result, 'Mi, 5. Feb 2014');
});
});

describe('with type = "date" and format = "short"', function() {
it('returns the short date localization for that date', function() {
var result = instance.localize(date, { type: 'date', format: 'short' });
assert.equal(result, '06.02.14');
assert.equal(result, '05.02.14');
});
});

describe('with type = "date" and format = "long"', function() {
it('returns the long date localization for that date', function() {
var result = instance.localize(date, { type: 'date', format: 'long' });
assert.equal(result, 'Donnerstag, 6. Februar 2014');
assert.equal(result, 'Mittwoch, 5. Februar 2014');
});
});

Expand Down Expand Up @@ -979,7 +981,8 @@ describe('translate', function() {
assert.equal(translate.withLocale('de', function() { return translate('greeting', { scope: 'my_project', name: 'Martin' }); }), 'Hallo, Martin!');
assert.equal(translate.withLocale('de', function() { return translate('x_items', { scope: 'my_project', count: 1 }); }), '1 Stück');

var date = new Date('Fri Feb 21 2014 13:46:24 GMT+0100 (CET)');
var date = new time.Date('Fri Feb 21 2014 13:46:24 GMT+0100 (CET)');
date.setTimezone('Europe/Amsterdam');

assert.equal(translate.localize(date) , 'Fri, 21 Feb 2014 13:46');
assert.equal(translate.localize(date, { format: 'short' }) , '21 Feb 13:46');
Expand Down

0 comments on commit 5b95052

Please sign in to comment.