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);
+ }));
+ });
});