From a7cba1197afabf2afd07a66192655566b2d87cb1 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Wed, 4 Jun 2014 23:11:18 -0300 Subject: [PATCH] add karma test for controller and service --- js/controllers/header.js | 4 +- test/unit/controllers/controllersSpec.js | 103 ++++++++++++++++++++++- 2 files changed, 104 insertions(+), 3 deletions(-) diff --git a/js/controllers/header.js b/js/controllers/header.js index a93b344ce..152fba89f 100644 --- a/js/controllers/header.js +++ b/js/controllers/header.js @@ -25,12 +25,12 @@ angular.module('copayApp.controllers').controller('HeaderController', var toInt = function (s) { return parseInt(s); }; var latestVersion = data[0].name.replace('v', '').split('.').map(toInt); var currentVersion = copay.version.split('.').map(toInt); - if (currentVersion[0] < latestVersion[0]){ $scope.updateVersion = 'error'; } else if (currentVersion[0] == latestVersion[0] && currentVersion[1] < latestVersion[1]) { $scope.updateVersion = 'info'; - } + } else + $scope.updateVersion = 'ok'; }); diff --git a/test/unit/controllers/controllersSpec.js b/test/unit/controllers/controllersSpec.js index 0209a1cbc..0b8cdd20f 100644 --- a/test/unit/controllers/controllersSpec.js +++ b/test/unit/controllers/controllersSpec.js @@ -1,7 +1,7 @@ // // test/unit/controllers/controllersSpec.js // -describe("Unit: Testing Controllers", function() { +describe("Unit: Controllers", function() { var scope; @@ -48,4 +48,105 @@ describe("Unit: Testing Controllers", function() { expect(scope.blockchain_txs).to.be.empty; }); }); + + describe("Unit: Header Controller", function() { + beforeEach(module('notifications')); + beforeEach(module('copayApp.services')); + beforeEach(module('copayApp.controllers')); + + var scope, $httpBackendOut; +// + var GH = 'https://api.github.com/repos/bitpay/copay/tags'; + beforeEach(inject(function($controller, $injector) { + $httpBackend = $injector.get('$httpBackend'); + $httpBackend.when('GET', GH) + .respond( [{ + name: "v100.1.6", + zipball_url: "https://api.github.com/repos/bitpay/copay/zipball/v0.0.6", + tarball_url: "https://api.github.com/repos/bitpay/copay/tarball/v0.0.6", + commit: { + sha: "ead7352bf2eca705de58d8b2f46650691f2bc2c7", + url: "https://api.github.com/repos/bitpay/copay/commits/ead7352bf2eca705de58d8b2f46650691f2bc2c7" + } + }]); + })); + + var rootScope; + beforeEach(inject(function($controller, $rootScope) { + rootScope = $rootScope; + scope = $rootScope.$new(); + headerCtrl = $controller('HeaderController', { + $scope: scope, + }); + })); + + + afterEach(function() { + $httpBackend.verifyNoOutstandingExpectation(); + $httpBackend.verifyNoOutstandingRequest(); + }); + + it('should have a txAlertCount', function() { + expect(scope.txAlertCount).equal(0); + $httpBackend.flush(); + }); + + it('should hit github for version', function() { + $httpBackend.expectGET(GH); + scope.$apply(); + $httpBackend.flush(); + }); + + it('should check version ', function() { + $httpBackend.expectGET(GH); + scope.$apply(); + $httpBackend.flush(); + expect(scope.updateVersion).equal('error'); + }); + + it('should check blockChainStatus', function() { + $httpBackend.expectGET(GH); + $httpBackend.flush(); + rootScope.blockChainStatus='error'; + scope.$apply(); + expect(rootScope.insightError).equal(1); + rootScope.blockChainStatus='ok'; + scope.$apply(); + expect(rootScope.insightError).equal(1); + rootScope.blockChainStatus='restored'; + scope.$apply(); + expect(rootScope.insightError).equal(0); + }); + }); + }); +// +// it('should have a BackupController controller', function() { +// expect(copayApp.Backupcontroller).not.to.equal(null); +// }); +// +// it('should have a HeaderController controller', function() { +// expect(copayApp.HeaderController).not.to.equal(null); +// }); +// +// it('should have a SendController controller', function() { +// expect(copayApp.SendController).not.to.equal(null); +// }); +// +// it('should have a SetupController controller', function() { +// expect(copayApp.SetupController).not.to.equal(null); +// }); +// +// it('should have a SigninController controller', function() { +// expect(copayApp.SigninController).not.to.equal(null); +// console.log('[controllersSpec.js.30:copayApp:]',copayApp); //TODO +// }); +// +// it('should have a TransactionsController controller', function() { +// expect(copayApp.TransactionsController).not.to.equal(null); +// }); +// +// beforeEach(angular.mock.module('copay.walletFactory')); +// it('should display a link to create a new wallet if no wallets in localStorage', inject(function(walletFactory) { +// expect(walletFactory.storage.getWalletIds()).to.be.empty; +// }));