Skip to content

Instantly share code, notes, and snippets.

@cybersamx
Created August 6, 2014 18:28
Show Gist options
  • Save cybersamx/2ba87b9fdb144d2281dd to your computer and use it in GitHub Desktop.
Save cybersamx/2ba87b9fdb144d2281dd to your computer and use it in GitHub Desktop.
Inject a custom AngularJS filter object to a (Jasmine) unit test spec.
// Simple custom filer
var filters = angular.module('myNameSpace.filters', []);
filters.filter('reverse', function() {
return function(text) {
return text.split('').reverse().join('');
};
});
// 2 ways to test
// Method 1
describe('myNameSpace.filters', function() {
describe('EchoService', function() {
var createFilter;
beforeEach(module('myNameSpace.filters'));
beforeEach(inject(function($filter) {
createFilter = function() {
return $filter('reverse');
};
}));
it('should reverse', function() {
var filter = createFilter();
expect(filter('hello')).toBe('olleh');
});
});
});
// Method 2 (Shorter Version)
describe('myNameSpace.filters', function() {
describe('EchoService', function() {
beforeEach(module('angularjs.testing.filters'));
it('should reverse', inject(function($filter) {
var reversedText = $filter('reverse')('hello');
expect(reversedText).toBe('olleh');
}));
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment