diff --git a/js/controllers/transactions.js b/js/controllers/transactions.js index 2f49bf3d6..914a07137 100644 --- a/js/controllers/transactions.js +++ b/js/controllers/transactions.js @@ -156,11 +156,12 @@ angular.module('copayApp.controllers').controller('TransactionsController', $scope.getTransactions(); } - $scope.amountAlternative = function (amount, txIndex) { + $scope.amountAlternative = function (amount, txIndex, cb) { var w = $rootScope.wallet; rateService.whenAvailable(function() { var valueSat = amount * w.settings.unitToSatoshi; $scope.alternativeCurrency[txIndex] = rateService.toFiat(valueSat, w.settings.alternativeIsoCode); + return cb ? cb() : null; }); }; }); diff --git a/test/unit/controllers/controllersSpec.js b/test/unit/controllers/controllersSpec.js index 4c268e7ab..bb415764c 100644 --- a/test/unit/controllers/controllersSpec.js +++ b/test/unit/controllers/controllersSpec.js @@ -127,6 +127,10 @@ describe("Unit: Controllers", function() { }); })); + it('should exist', function() { + should.exist(transactionsCtrl); + }); + it('should have a TransactionController controller', function() { expect(scope.loading).equal(false); }); @@ -135,6 +139,17 @@ describe("Unit: Controllers", function() { scope.getTransactions(); expect(scope.blockchain_txs).to.be.empty; }); + + it('should call amountAlternative and return a value', function() { + var cb = sinon.spy(); + var s1 = sinon.stub(scope, 'amountAlternative'); + s1.onCall(0).returns(1000); + s1.onCall(1).returns(2000); + expect(s1(100, 0, cb)).equal(1000); + expect(s1(200, 1, cb)).equal(2000); + sinon.assert.callCount(scope.amountAlternative, 2); + s1.restore(); + }); }); describe('Send Controller', function() {