mirror of https://github.com/BTCPrivate/copay.git
Merge pull request #730 from yemel/fix/new-address-on-payment
Change default address list
This commit is contained in:
commit
da445e7c69
|
@ -413,7 +413,7 @@
|
|||
</span>
|
||||
</a>
|
||||
|
||||
<a class="secondary radius" ng-click="showAll=!showAll" ng-show="(addresses|withoutFunds) > 1">
|
||||
<a class="secondary radius" ng-click="showAll=!showAll" ng-show="addresses.length != (addresses|limitAddress).length">
|
||||
<span ng-if="!showAll">Show all</span>
|
||||
<span ng-if="showAll">Show less</span>
|
||||
</a>
|
||||
|
|
|
@ -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<elements.length;i++) {
|
||||
if (!elements[i].isChange && (!elements[i].balance || elements[i].balance == 0)) {
|
||||
addrs.push(elements[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (var i=0;i<elements.length;i++) {
|
||||
if (elements[i].balance && elements[i].balance > 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<elements.length;i++) {
|
||||
if (!elements[i].balance || elements[i].balance == 0) {
|
||||
len++;
|
||||
}
|
||||
}
|
||||
return len;
|
||||
|
||||
// Show last 3 non-change addresses plus those with balance
|
||||
var addrs = elements.filter(function(e, i) {
|
||||
return (!e.isChange && i < 3) || (e.balance && e.balance > 0);
|
||||
});
|
||||
|
||||
return addrs;
|
||||
};
|
||||
})
|
||||
;
|
||||
|
|
|
@ -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);
|
||||
}));
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue