A few more test cases.
This commit is contained in:
parent
2d0e5c5f79
commit
5825ff26b8
1 changed files with 214 additions and 1 deletions
|
|
@ -3,6 +3,7 @@ fdescribe('walletHistoryService', function(){
|
|||
var historyStringFull;
|
||||
var storageServiceMock;
|
||||
var txFormatServiceMock;
|
||||
var walletMock;
|
||||
var walletHistoryService;
|
||||
|
||||
|
||||
|
|
@ -14,7 +15,8 @@ fdescribe('walletHistoryService', function(){
|
|||
txFormatServiceMock = jasmine.createSpyObj(['processTx']);
|
||||
txFormatServiceMock.processTx.and.callFake(function(coin, tx){
|
||||
return tx;
|
||||
})
|
||||
});
|
||||
walletMock = jasmine.createSpyObj(['getTxHistory']);
|
||||
|
||||
module(function($provide) {
|
||||
$provide.value('storageService', storageServiceMock);
|
||||
|
|
@ -56,6 +58,27 @@ fdescribe('walletHistoryService', function(){
|
|||
expect(returnedHistory.length).toBe(0);
|
||||
});
|
||||
|
||||
it('getCachedHistory error from storage', function() {
|
||||
var returnedErr;
|
||||
var returnedHistory;
|
||||
var walletIdForStorageGet = '';
|
||||
|
||||
storageServiceMock.getTxHistory.and.callFake(function(walletId, cb){
|
||||
walletIdForStorageGet = walletId;
|
||||
|
||||
cb(new Error('Something went wrong.'), null);
|
||||
});
|
||||
|
||||
walletHistoryService.getCachedTxHistory('wallet12345', function(err, txHistory){
|
||||
returnedErr = err;
|
||||
returnedHistory = txHistory;
|
||||
});
|
||||
|
||||
expect(walletIdForStorageGet).toBe('wallet12345');
|
||||
expect(returnedErr.message).toBe('Something went wrong.');
|
||||
expect(returnedHistory.length).toBe(0);
|
||||
});
|
||||
|
||||
it('getCachedHistory page full', function() {
|
||||
var returnedErr;
|
||||
var returnedHistory;
|
||||
|
|
@ -77,5 +100,195 @@ fdescribe('walletHistoryService', function(){
|
|||
expect(returnedHistory.length).toBe(50);
|
||||
});
|
||||
|
||||
it('updateLocalTxHistoryByPage, getEarlier, keep cache, sufficient overlap so saved.', function(){
|
||||
var fetchLimit;
|
||||
var fetchSkip;
|
||||
var returnedHistory;
|
||||
var savedTxs;
|
||||
var walletIdForStorageGet;
|
||||
var walletIdForStorageSet;
|
||||
walletMock.id = 'wallet67890';
|
||||
|
||||
storageServiceMock.getTxHistory.and.callFake(function(walletId, cb){
|
||||
walletIdForStorageGet = walletId;
|
||||
|
||||
cb(null, JSON.stringify(history.slice(0, 40)));
|
||||
});
|
||||
|
||||
walletMock.getTxHistory.and.callFake(function(opts, cb){
|
||||
fetchSkip = opts.skip;
|
||||
fetchLimit = opts.limit;
|
||||
|
||||
cb(null, history.slice(fetchSkip, fetchSkip + fetchLimit));
|
||||
});
|
||||
|
||||
storageServiceMock.setTxHistory.and.callFake(function(txs, walletId, cb){
|
||||
savedTxs = txs;
|
||||
walletIdForStorageSet = walletId;
|
||||
cb(null);
|
||||
});
|
||||
|
||||
walletHistoryService.updateLocalTxHistoryByPage(walletMock, false, false, function(err, txs){
|
||||
returnedErr = err;
|
||||
returnedHistory = txs;
|
||||
});
|
||||
|
||||
expect(walletIdForStorageGet).toBe('wallet67890');
|
||||
expect(walletIdForStorageSet).toBe('wallet67890');
|
||||
expect(fetchSkip).toBe(30);
|
||||
expect(fetchLimit).toBe(50);
|
||||
expect(savedTxs.length).toBe(80);
|
||||
expect(returnedErr).toBeNull();
|
||||
expect(returnedHistory.length).toBe(80);
|
||||
});
|
||||
|
||||
it('updateLocalTxHistoryByPage, cache empty, getLatest, do not flush cache, some new so saved.', function(){
|
||||
var fetchLimit;
|
||||
var fetchSkip;
|
||||
var returnedHistory;
|
||||
var savedTxs;
|
||||
var walletIdForStorageGet;
|
||||
var walletIdForStorageSet;
|
||||
walletMock.id = 'wallet789';
|
||||
|
||||
storageServiceMock.getTxHistory.and.callFake(function(walletId, cb){
|
||||
walletIdForStorageGet = walletId;
|
||||
cb(null, "[]");
|
||||
});
|
||||
|
||||
walletMock.getTxHistory.and.callFake(function(opts, cb){
|
||||
fetchSkip = opts.skip;
|
||||
fetchLimit = opts.limit;
|
||||
|
||||
cb(null, history.slice(0, 10));
|
||||
});
|
||||
|
||||
storageServiceMock.setTxHistory.and.callFake(function(txs, walletId, cb){
|
||||
savedTxs = txs;
|
||||
walletIdForStorageSet = walletId;
|
||||
cb(null);
|
||||
});
|
||||
|
||||
walletHistoryService.updateLocalTxHistoryByPage(walletMock, true, false, function(err, txs){
|
||||
returnedErr = err;
|
||||
returnedHistory = txs;
|
||||
});
|
||||
|
||||
expect(walletIdForStorageGet).toBe('wallet789');
|
||||
expect(fetchSkip).toBe(0);
|
||||
expect(fetchLimit).toBe(50);
|
||||
expect(savedTxs.length).toBe(10);
|
||||
expect(returnedErr).toBeNull();
|
||||
expect(returnedHistory.length).toBe(10);
|
||||
});
|
||||
|
||||
it('updateLocalTxHistoryByPage, some cachedTx, getLatest, do not flush cache, nothing new so nothing added.', function(){
|
||||
var fetchLimit;
|
||||
var fetchSkip;
|
||||
var returnedHistory;
|
||||
var walletIdForStorageGet;
|
||||
walletMock.id = 'wallet789';
|
||||
|
||||
storageServiceMock.getTxHistory.and.callFake(function(walletId, cb){
|
||||
walletIdForStorageGet = walletId;
|
||||
cb(null, JSON.stringify(history.slice(0, 40)));
|
||||
});
|
||||
|
||||
walletMock.getTxHistory.and.callFake(function(opts, cb){
|
||||
fetchSkip = opts.skip;
|
||||
fetchLimit = opts.limit;
|
||||
|
||||
cb(null, []);
|
||||
});
|
||||
|
||||
walletHistoryService.updateLocalTxHistoryByPage(walletMock, true, false, function(err, txs){
|
||||
returnedErr = err;
|
||||
returnedHistory = txs;
|
||||
});
|
||||
|
||||
expect(walletIdForStorageGet).toBe('wallet789');
|
||||
expect(fetchSkip).toBe(0);
|
||||
expect(fetchLimit).toBe(50);
|
||||
expect(returnedErr).toBeNull();
|
||||
expect(returnedHistory.length).toBe(40);
|
||||
expect(storageServiceMock.setTxHistory.calls.any()).toBe(false);
|
||||
});
|
||||
|
||||
it('updateLocalTxHistoryByPage, some cachedTx, getLatest, do not flush cache, some new with sufficient overlap so all saved.', function(){
|
||||
var fetchLimit;
|
||||
var fetchSkip;
|
||||
var returnedHistory;
|
||||
var savedTxs;
|
||||
var walletIdForStorageGet;
|
||||
var walletIdForStorageSet;
|
||||
walletMock.id = 'wallet789';
|
||||
|
||||
storageServiceMock.getTxHistory.and.callFake(function(walletId, cb){
|
||||
walletIdForStorageGet = walletId;
|
||||
cb(null, JSON.stringify(history.slice(42, 72)));
|
||||
});
|
||||
|
||||
walletMock.getTxHistory.and.callFake(function(opts, cb){
|
||||
fetchSkip = opts.skip;
|
||||
fetchLimit = opts.limit;
|
||||
|
||||
cb(null, history.slice(fetchSkip, fetchSkip + fetchLimit));
|
||||
});
|
||||
|
||||
storageServiceMock.setTxHistory.and.callFake(function(txs, walletId, cb){
|
||||
savedTxs = txs;
|
||||
walletIdForStorageSet = walletId;
|
||||
cb(null);
|
||||
});
|
||||
|
||||
walletHistoryService.updateLocalTxHistoryByPage(walletMock, true, false, function(err, txs){
|
||||
returnedErr = err;
|
||||
returnedHistory = txs;
|
||||
});
|
||||
|
||||
expect(walletIdForStorageGet).toBe('wallet789');
|
||||
expect(fetchSkip).toBe(0);
|
||||
expect(fetchLimit).toBe(50);
|
||||
expect(walletIdForStorageSet).toBe('wallet789');
|
||||
expect(savedTxs.length).toBe(72);
|
||||
expect(returnedErr).toBeNull();
|
||||
expect(returnedHistory.length).toBe(72);
|
||||
|
||||
});
|
||||
|
||||
it('updateLocalTxHistoryByPage, getLatest, flush cache, some new so saved.', function(){
|
||||
var fetchLimit;
|
||||
var fetchSkip;
|
||||
var returnedHistory;
|
||||
var savedTxs;
|
||||
var walletIdForStorageSet;
|
||||
walletMock.id = 'wallet7890';
|
||||
|
||||
walletMock.getTxHistory.and.callFake(function(opts, cb){
|
||||
fetchSkip = opts.skip;
|
||||
fetchLimit = opts.limit;
|
||||
|
||||
cb(null, history.slice(0, fetchLimit));
|
||||
});
|
||||
|
||||
storageServiceMock.setTxHistory.and.callFake(function(txs, walletId, cb){
|
||||
savedTxs = txs;
|
||||
walletIdForStorageSet = walletId;
|
||||
cb(null);
|
||||
});
|
||||
|
||||
walletHistoryService.updateLocalTxHistoryByPage(walletMock, true, true, function(err, txs){
|
||||
returnedErr = err;
|
||||
returnedHistory = txs;
|
||||
});
|
||||
|
||||
expect(walletIdForStorageSet).toBe('wallet7890');
|
||||
expect(fetchSkip).toBe(0);
|
||||
expect(fetchLimit).toBe(50);
|
||||
expect(savedTxs.length).toBe(50);
|
||||
expect(returnedErr).toBeNull();
|
||||
expect(returnedHistory.length).toBe(50);
|
||||
expect(storageServiceMock.getTxHistory.calls.any()).toBe(false);
|
||||
});
|
||||
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue