Fixes: tests. Added karma and mocha tests.

This commit is contained in:
Gustavo Maximiliano Cortez 2014-08-07 20:07:41 -03:00
parent 801e746d11
commit 8ad1fa7b02
7 changed files with 40 additions and 9 deletions

View File

@ -75,14 +75,16 @@ angular.module('copayApp.controllers').controller('SidebarController',
}
$scope.checkIfWarning = function() {
if (!$rootScope.wallet.isLocked) {
if ($rootScope.wallet && !$rootScope.wallet.isLocked) {
controllerUtils.redirIfLogged();
}
};
$scope.ignoreLocked = function() {
$rootScope.wallet.isLocked = false;
controllerUtils.redirIfLogged();
if ($rootScope.wallet) {
$rootScope.wallet.isLocked = false;
controllerUtils.redirIfLogged();
}
};
});

View File

@ -43,6 +43,7 @@ function Wallet(opts) {
this.id = opts.id || Wallet.getRandomId();
this.name = opts.name;
this.isLocked = false;
this.verbose = opts.verbose;
this.publicKeyRing.walletId = this.id;
@ -431,7 +432,6 @@ Wallet.prototype.netStart = function(callback) {
var self = this;
var net = this.network;
this._checkLocked();
net.removeAllListeners();
net.on('connect', self._handleConnect.bind(self));
@ -464,6 +464,7 @@ Wallet.prototype.netStart = function(callback) {
self.scheduleConnect();
self.emit('txProposalsUpdated');
}, 10);
self._checkLocked();
});
};
@ -1017,6 +1018,9 @@ Wallet.prototype.indexDiscovery = function(start, change, cosigner, gap, cb) {
Wallet.prototype.disconnect = function() {
this.log('## DISCONNECTING');
if (!this.isLocked) {
this.closeIfOpen();
}
this.network.disconnect();
};

View File

@ -21,10 +21,7 @@ angular.module('copayApp.services')
}
};
root.logout = function() {
if (!$rootScope.wallet.isLocked) {
$rootScope.wallet.closeIfOpen();
}
root.logout = function() {
Socket.removeAllListeners();
$rootScope.wallet = null;

View File

@ -27,6 +27,18 @@ FakeStorage.prototype.getLastOpened = function() {
return this.storage['lastOpened'];
};
FakeStorage.prototype.setIsOpen = function(id) {
this.storage[id + '::isOpen'] = true;
}
FakeStorage.prototype.getIsOpen = function(id) {
return this.storage[id + '::isOpen'];
}
FakeStorage.prototype.removeIsOpen = function(id) {
delete this[id + '::isOpen'];
}
FakeStorage.prototype.removeGlobal = function(id) {
delete this.storage[id];
};

View File

@ -4,6 +4,7 @@ var FakeWallet = function() {
this.safeBalance = 1000;
this.totalCopayers = 2;
this.requiredCopayers = 2;
this.isLocked = false;
this.balanceByAddr = {
'1CjPR7Z5ZSyWk6WtXvSFgkptmpoi4UM9BC': 1000
};

View File

@ -1022,6 +1022,14 @@ describe('Wallet model', function() {
w.netStart();
w.network.start.getCall(0).args[0].privkey.length.should.equal(64);
});
it('should check if wallet is already opened', function() {
var w = createW();
w._checkLocked();
w.isLocked.should.equal(false);
w._checkLocked();
w.isLocked.should.equal(true);
});
});
describe('#forceNetwork in config', function() {

View File

@ -288,8 +288,10 @@ describe("Unit: Controllers", function() {
describe("Unit: Sidebar Controller", function() {
var rootScope;
beforeEach(inject(function($controller, $rootScope) {
rootScope = $rootScope;
scope = $rootScope.$new();
rootScope = $rootScope;
rootScope.wallet = new FakeWallet(config);
headerCtrl = $controller('SidebarController', {
$scope: scope,
});
@ -301,6 +303,11 @@ describe("Unit: Controllers", function() {
expect(array.length).equal(n);
});
it('should ignore if wallet is locked', function() {
scope.ignoreLocked();
expect(rootScope.wallet.isLocked).equal(false);
});
});
describe('Send Controller', function() {