2014-04-23 09:21:33 -07:00
|
|
|
//
|
|
|
|
// test/unit/services/servicesSpec.js
|
|
|
|
//
|
2014-06-16 08:44:18 -07:00
|
|
|
//
|
|
|
|
//
|
2014-06-18 09:01:50 -07:00
|
|
|
var sinon = require('sinon');
|
|
|
|
|
2014-06-16 08:44:18 -07:00
|
|
|
describe('Check config', function() {
|
|
|
|
it('unit should be set to BITS in config.js', function() {
|
|
|
|
expect(config.unitToSatoshi).to.equal(100);
|
|
|
|
expect(config.unitName).to.equal('bits');
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
2014-06-12 13:42:26 -07:00
|
|
|
describe("Unit: Socket Service", function() {
|
2014-06-03 13:42:36 -07:00
|
|
|
beforeEach(angular.mock.module('copayApp.services'));
|
2014-04-23 14:07:20 -07:00
|
|
|
|
|
|
|
it('should contain a Socket service', inject(function(Socket) {
|
|
|
|
expect(Socket).not.to.equal(null);
|
|
|
|
}));
|
|
|
|
|
2014-06-04 16:17:45 -07:00
|
|
|
|
|
|
|
it('Socket should support #on', inject(function(Socket) {
|
|
|
|
expect(Socket.on).to.be.a('function');
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
|
|
it('Socket should support #sysOn', inject(function(Socket) {
|
|
|
|
expect(Socket.sysOn).to.be.a('function');
|
2014-06-12 13:42:26 -07:00
|
|
|
}));
|
2014-06-04 16:17:45 -07:00
|
|
|
|
|
|
|
|
|
|
|
it('Socket should add handlers with #on', inject(function(Socket) {
|
2014-06-16 08:44:18 -07:00
|
|
|
Socket.on('a', function() {});
|
|
|
|
Socket.on('b', function() {});
|
|
|
|
Socket.sysOn('c', function() {});
|
2014-06-04 16:17:45 -07:00
|
|
|
var ret = Socket.getListeners();
|
|
|
|
expect(ret.a).to.be.equal(1);
|
|
|
|
expect(ret.b).to.be.equal(1);
|
|
|
|
expect(Object.keys(ret)).to.have.length(2);
|
|
|
|
}));
|
|
|
|
|
2014-06-23 11:05:06 -07:00
|
|
|
it('Socket should support block event', inject(function(Socket) {
|
|
|
|
expect(Socket.isListeningBlocks()).to.be.false;
|
|
|
|
Socket.on('block', function() {});
|
|
|
|
expect(Socket.isListeningBlocks()).to.be.true;
|
|
|
|
Socket.removeAllListeners();
|
|
|
|
expect(Socket.isListeningBlocks()).to.be.false;
|
|
|
|
}));
|
|
|
|
|
2014-06-04 16:17:45 -07:00
|
|
|
it('Socket should support #removeAllListeners', inject(function(Socket) {
|
2014-06-16 08:44:18 -07:00
|
|
|
Socket.on('a', function() {});
|
|
|
|
Socket.on('b', function() {});
|
|
|
|
Socket.sysOn('c', function() {});
|
2014-06-04 16:17:45 -07:00
|
|
|
var ret = Socket.getListeners();
|
|
|
|
expect(Object.keys(ret)).to.have.length(2);
|
|
|
|
Socket.removeAllListeners();
|
|
|
|
ret = Socket.getListeners();
|
|
|
|
expect(Object.keys(ret)).to.have.length(0);
|
|
|
|
}));
|
2014-06-12 13:42:26 -07:00
|
|
|
});
|
2014-06-04 16:17:45 -07:00
|
|
|
|
|
|
|
|
2014-06-12 13:42:26 -07:00
|
|
|
describe("Unit: Walletfactory Service", function() {
|
|
|
|
beforeEach(angular.mock.module('copayApp.services'));
|
2014-04-23 14:07:20 -07:00
|
|
|
it('should contain a walletFactory service', inject(function(walletFactory) {
|
|
|
|
expect(walletFactory).not.to.equal(null);
|
|
|
|
}));
|
2014-06-12 13:42:26 -07:00
|
|
|
});
|
2014-04-23 14:07:20 -07:00
|
|
|
|
2014-06-12 13:42:26 -07:00
|
|
|
describe("Unit: controllerUtils", function() {
|
|
|
|
beforeEach(angular.mock.module('copayApp.services'));
|
|
|
|
|
|
|
|
it('should updateBalance in bits', inject(function(controllerUtils, $rootScope) {
|
|
|
|
expect(controllerUtils.updateBalance).not.to.equal(null);
|
|
|
|
scope = $rootScope.$new();
|
2014-04-23 14:07:20 -07:00
|
|
|
|
2014-06-16 08:44:18 -07:00
|
|
|
$rootScope.wallet = new FakeWallet();
|
2014-06-12 13:42:26 -07:00
|
|
|
var addr = '1CjPR7Z5ZSyWk6WtXvSFgkptmpoi4UM9BC';
|
2014-06-16 08:44:18 -07:00
|
|
|
var a = {};
|
|
|
|
a[addr] = 100;
|
|
|
|
//SATs
|
|
|
|
$rootScope.wallet.set(100000001, 90000002, a);
|
2014-04-23 14:07:20 -07:00
|
|
|
|
2014-06-16 08:44:18 -07:00
|
|
|
//retuns values in DEFAULT UNIT(bits)
|
2014-06-12 13:42:26 -07:00
|
|
|
controllerUtils.updateBalance(function() {
|
2014-06-16 08:44:18 -07:00
|
|
|
expect($rootScope.totalBalanceBTC).to.be.equal('1.0000');
|
|
|
|
expect($rootScope.availableBalanceBTC).to.be.equal('0.9000');
|
|
|
|
expect($rootScope.totalBalance).to.be.equal(1000000.01);
|
|
|
|
expect($rootScope.availableBalance).to.be.equal(900000.02);
|
2014-06-12 13:42:26 -07:00
|
|
|
expect($rootScope.addrInfos).not.to.equal(null);
|
|
|
|
expect($rootScope.addrInfos[0].address).to.equal(addr);
|
|
|
|
});
|
2014-04-23 14:07:20 -07:00
|
|
|
}));
|
2014-06-12 13:42:26 -07:00
|
|
|
|
|
|
|
|
2014-04-23 09:21:33 -07:00
|
|
|
});
|
2014-06-16 13:40:59 -07:00
|
|
|
|
2014-06-18 09:01:50 -07:00
|
|
|
describe("Unit: Notification Service", function() {
|
|
|
|
beforeEach(angular.mock.module('copayApp.services'));
|
|
|
|
it('should contain a notification service', inject(function(notification) {
|
|
|
|
expect(notification).not.to.equal(null);
|
|
|
|
}));
|
|
|
|
});
|
2014-06-16 13:40:59 -07:00
|
|
|
|
|
|
|
describe("Unit: Backup Service", function() {
|
|
|
|
beforeEach(angular.mock.module('copayApp.services'));
|
|
|
|
it('should contain a backup service', inject(function(backupService) {
|
|
|
|
expect(backupService).not.to.equal(null);
|
|
|
|
}));
|
|
|
|
it('should backup in file', inject(function(backupService) {
|
|
|
|
var mock = sinon.mock(window);
|
|
|
|
var expectation = mock.expects('saveAs');
|
|
|
|
backupService.download(new FakeWallet());
|
|
|
|
expectation.once();
|
|
|
|
}));
|
|
|
|
});
|
2014-06-19 11:07:20 -07:00
|
|
|
|
|
|
|
describe("Unit: isMobile Service", function() {
|
|
|
|
beforeEach(angular.mock.module('copayApp.services'));
|
|
|
|
it('should contain a isMobile service', inject(function(isMobile) {
|
|
|
|
expect(isMobile).not.to.equal(null);
|
|
|
|
}));
|
|
|
|
it('should not detect mobile by default', inject(function(isMobile) {
|
|
|
|
isMobile.any().should.equal(false);
|
|
|
|
}));
|
|
|
|
it('should detect mobile if user agent is Android', inject(function(isMobile) {
|
|
|
|
navigator.__defineGetter__('userAgent', function(){
|
|
|
|
return 'Android 2.2.3';
|
|
|
|
});
|
|
|
|
isMobile.any().should.equal(true);
|
|
|
|
}));
|
|
|
|
});
|