Adds tests for csv download

This commit is contained in:
Matias Alejo Garcia 2016-06-03 15:21:30 -03:00
commit aa076d7ccd
No known key found for this signature in database
GPG key ID: 02470DB551277AB3
4 changed files with 115 additions and 64 deletions

View file

@ -590,6 +590,11 @@ angular.module('copayApp.controllers').controller('indexController', function($r
self.hasUnsafeConfirmed = true;
}
if (tx.note) {
delete tx.note.encryptedEditedByName;
delete tx.note.encryptedBody;
}
if (!txHistoryUnique[tx.txid]) {
ret.push(tx);
txHistoryUnique[tx.txid] = true;

View file

@ -1,15 +1,13 @@
'use strict';
angular.module('copayApp.controllers').controller('preferencesHistory',
function($scope, $log, $timeout, storageService, go, profileService, platformInfo, lodash) {
function($scope, $log, $timeout, storageService, go, profileService, lodash) {
var fc = profileService.focusedClient;
var c = fc.credentials;
var isCordova = platformInfo.isCordova;
this.csvReady = false;
this.csvHistory = function() {
if (isCordova) return;
this.csvHistory = function(cb) {
function formatDate(date) {
var dateObj = new Date(date);
@ -25,7 +23,6 @@ angular.module('copayApp.controllers').controller('preferencesHistory',
}
function formatString(str) {
console.log('[index.js.710:str:]', str); //TODO
if (!str) return '';
if (str.indexOf('"') !== -1) {
@ -55,23 +52,31 @@ angular.module('copayApp.controllers').controller('preferencesHistory',
}
allTxs.push(txsFromLocal);
console.log('[preferencesHistory.js.56:allTxs:]',allTxs); //TODO
return cb(null, lodash.flatten(allTxs));
});
}
var fc = profileService.focusedClient;
var c = fc.credentials;
if (!fc.isComplete()) return;
if (!fc.isComplete())
return;
var self = this;
var allTxs = [];
console.log('[preferencesHistory.js.68]'); //TODO
$log.debug('Generating CSV from History');
getHistory(function(err, txs) {
console.log('[preferencesHistory.js.71:txs:]',txs); //TODO
if (err || !txs || !txs[0]) {
$log.warn('Failed to generate CSV:', err);
if (cb) return cb(err);
return;
} else {
}
console.log('[preferencesHistory.js.77]', txs); //TODO
$log.debug('Wallet Transaction History Length:', txs.length);
self.satToUnit = 1 / self.unitToSatoshi;
@ -131,9 +136,12 @@ angular.module('copayApp.controllers').controller('preferencesHistory',
}
});
console.log('[preferencesHistory.js.131]'); //TODO
self.csvReady = true;
if (cb)
return cb();
return;
}
});
};

View file

@ -0,0 +1,31 @@
describe('Preferences History Controller', function() {
var walletService;
var txHistory = '[{"txid":"bf31ecaa8e10ce57f9a889fc4c893b40ff57b016dd763957d942e21ed55fc62c","action":"received","amount":120000,"fees":4862,"time":1464969291,"confirmations":8,"outputs":[{"amount":120000,"address":"2N4HgtF9cJSzxhVkj5gbKxwJSKWBmnb9FNJ","message":null}],"note":{"body":"just a comment","editedBy":"31a8c3c0be9ffbb9f257c95f3fd2f73a59cf81e40199ba5918417270db8c4cdb","editedByName":"2-2","editedOn":1464969101},"message":null,"creatorName":"","hasUnconfirmedInputs":false,"amountStr":"1,200 bits","alternativeAmountStr":"0.68 USD","feeStr":"49 bits","safeConfirmed":"6+"}]';
describe('Complete 1-1 wallet', function() {
beforeEach(function(done) {
mocks.init(FIXTURES, 'preferencesHistory', {
loadProfile: PROFILE.testnet1of1,
loadStorage: {
'txsHistory-66d3afc9-7d76-4b25-850e-aa62fcc53a7d': txHistory,
},
}, done);
});
afterEach(function(done) {
mocks.clear({}, done);
});
it('should export csv', function(done) {
ctrl.csvHistory(function(err) {
should.not.exist(err);
ctrl.csvReady.should.equal(true);
JSON.stringify(ctrl.csvContent).should.equal('[{"Date":"2016-06-03T15:54:51.000Z","Destination":"","Description":"","Amount":"0.00120000","Currency":"BTC","Txid":"bf31ecaa8e10ce57f9a889fc4c893b40ff57b016dd763957d942e21ed55fc62c","Creator":"","Copayers":"","Comment":"just a comment"}]');
done();
});
});
});
});

View file

@ -163,7 +163,7 @@ mocks.init = function(fixtures, controllerName, opts, done) {
});
module('copayApp.controllers');
inject(function($rootScope, $controller, $injector, _configService_, _profileService_, _storageService_) {
inject(function($rootScope, $controller, $injector, lodash, _configService_, _profileService_, _storageService_) {
scope = $rootScope.$new();
storageService = _storageService_;
@ -198,6 +198,13 @@ mocks.init = function(fixtures, controllerName, opts, done) {
if (opts.initController)
startController();
if (opts.loadStorage) {
lodash.each(opts.loadStorage, function(v, k) {
localStorage.setItem(k, v);
});
}
if (opts.loadProfile) {
localStorage.setItem('profile', JSON.stringify(opts.loadProfile));