diff --git a/index.html b/index.html index df4759e28..60cdcfdb3 100644 --- a/index.html +++ b/index.html @@ -413,7 +413,7 @@ - + Show all Show less diff --git a/js/filters.js b/js/filters.js index cde5fd209..d5f5821e3 100644 --- a/js/filters.js +++ b/js/filters.js @@ -17,41 +17,16 @@ angular.module('copayApp.filters', []) }) .filter('limitAddress', function() { return function(elements, showAll) { - var addrs = []; - if (elements.length > 0) { - if (showAll) { - return elements; - } - if (elements.length == 1) { - return elements; - } - else { - for (var i=0;i 0) { - addrs.push(elements[i]); - } - } - return addrs; - } + if (elements.length <= 1 || showAll) { + return elements; } - }; - }) - .filter('withoutFunds', function() { - return function(elements) { - var len = 0; - for (var i=0;i 0); + }); + + return addrs; }; }) ; diff --git a/test/unit/filters/filtersSpec.js b/test/unit/filters/filtersSpec.js index c72b3fa07..d7c13955d 100644 --- a/test/unit/filters/filtersSpec.js +++ b/test/unit/filters/filtersSpec.js @@ -1,6 +1,56 @@ +'use strict'; // // test/unit/filters/filtersSpec.js // -describe("Unit: Testing Filters", function() { +describe('Unit: Testing Filters', function() { + beforeEach(module('copayApp.filters')); + + describe('limitAddress', function() { + + it('should handle emtpy list', inject(function($filter) { + var limitAddress = $filter('limitAddress'); + expect(limitAddress([], false)).to.be.empty; + })); + + it('should honor show all', inject(function($filter) { + var limitAddress = $filter('limitAddress'); + var addresses = [{}, {}, {}, {}, {}]; + expect(limitAddress(addresses, true).length).to.equal(5); + expect(limitAddress([{}], false).length).to.equal(1); + })); + + it('should filter correctly', inject(function($filter) { + var limitAddress = $filter('limitAddress'); + var addresses = [ + {isChange: true, balance: 0}, + {isChange: false, balance: 0}, + {isChange: true, balance: 0}, + {isChange: false, balance: 0}, + {isChange: true, balance: 0}, + {isChange: false, balance: 0}, + {isChange: true, balance: 0}, + {isChange: false, balance: 0} + ]; + expect(limitAddress(addresses, false).length).to.equal(1); + + addresses[0].isChange = false; + expect(limitAddress(addresses, false).length).to.equal(2); + + addresses[2].isChange = false; + expect(limitAddress(addresses, false).length).to.equal(3); + + addresses[3].isChange = false; + expect(limitAddress(addresses, false).length).to.equal(3); + + addresses[0].balance = 20; + expect(limitAddress(addresses, false).length).to.equal(3); + + addresses[0].balance = 20; + expect(limitAddress(addresses, false).length).to.equal(3); + + addresses[7].balance = 20; + expect(limitAddress(addresses, false).length).to.equal(4); + })); + }); });