Skip to content
This repository has been archived by the owner on Apr 12, 2024. It is now read-only.

Commit

Permalink
feat(TzDate): add mock "toString" method to TzDate.
Browse files Browse the repository at this point in the history
- If the third param of TzDate constructor is defined, toStirng will
just return this third parameter. Otherwise, toString will still
be treated as unimplemented method
  • Loading branch information
Di Peng authored and IgorMinar committed Jul 20, 2011
1 parent ad3b8d7 commit 0fbaa2f
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
8 changes: 7 additions & 1 deletion src/angular-mocks.js
Original file line number Diff line number Diff line change
Expand Up @@ -457,7 +457,7 @@ function MockLogFactory() {
* </pre>
*
*/
function TzDate(offset, timestamp) {
function TzDate(offset, timestamp, toStringVal) {
if (angular.isString(timestamp)) {
var tsStr = timestamp;

Expand All @@ -481,6 +481,10 @@ function TzDate(offset, timestamp) {
return this.date.getTime() - this.offsetDiff;
};

this.toString = function() {
return toStringVal;
}

this.toLocaleDateString = function() {
return this.date.toLocaleDateString();
};
Expand Down Expand Up @@ -551,6 +555,8 @@ function TzDate(offset, timestamp) {
'toLocaleTimeString', 'toSource', 'toString', 'toTimeString', 'toUTCString', 'valueOf'];

angular.forEach(unimplementedMethods, function(methodName) {
if (methodName == 'toString' && toStringVal) return;

self[methodName] = function() {
throw {
name: "MethodNotImplemented",
Expand Down
16 changes: 16 additions & 0 deletions test/angular-mocksSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,22 @@ describe('mocks', function(){
expect(date2.getUTCMinutes()).toBe(0);
expect(date2.getUTCSeconds()).toBe(0);
});


it('should fake toString method when a third param is passed in', function() {
var t = new TzDate(0, 0, 'Mon Sep 3 2010 17:05:08 GMT+0500 (XYZ)');
expect(t.toString()).toBe('Mon Sep 3 2010 17:05:08 GMT+0500 (XYZ)');
});


it('should throw error when no third param but toString called', function() {
var t = new TzDate(0, 0);
try {
t.toString();
} catch(err) {
expect(err.name).toBe('MethodNotImplemented');
}
})
});

describe('$log mock', function() {
Expand Down

0 comments on commit 0fbaa2f

Please sign in to comment.