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

Commit

Permalink
chore(log): generic test log service with custom toEquals matcher
Browse files Browse the repository at this point in the history
- any test that needs a logger can just inject provideLog
- logger has susict api that makes tests more readable
- custom toEquals matcher allows for pretty expectations
  • Loading branch information
IgorMinar committed Jan 24, 2012
1 parent dbffbef commit ed78f0d
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 0 deletions.
9 changes: 9 additions & 0 deletions test/matchers.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,15 @@ beforeEach(function() {
toBeDirty: cssMatcher('ng-dirty', 'ng-pristine'),
toBePristine: cssMatcher('ng-pristine', 'ng-dirty'),

toEqual: function(expected) {
if (this.actual && this.actual.$$log) {
this.actual = (typeof expected === 'string')
? this.actual.toString()
: this.actual.toArray();
}
return jasmine.Matchers.prototype.toEqual.call(this, expected);
},

toEqualData: function(expected) {
return angular.equals(this.actual, expected);
},
Expand Down
32 changes: 32 additions & 0 deletions test/testabilityPatch.js
Original file line number Diff line number Diff line change
Expand Up @@ -185,3 +185,35 @@ function assertVisible(node) {
}
}

function provideLog($provide) {
$provide.factory('log', function() {
var messages = [];

function log(msg) {
messages.push(msg);
return msg;
}

log.toString = function() {
return messages.join('; ');
}

log.toArray = function() {
return messages;
}

log.reset = function() {
messages = [];
}

log.fn = function(msg) {
return function() {
log(msg);
}
}

log.$$log = true;

return log;
});
}

0 comments on commit ed78f0d

Please sign in to comment.