From 4692e0d91d944b825c421a6fbd0ee148f0c2dd82 Mon Sep 17 00:00:00 2001 From: Brendon Duncan Date: Wed, 26 Sep 2018 22:38:29 +1200 Subject: [PATCH] Unit test case for 2 items in cache and that being all of the transactions. --- .../services/wallet-history.service.spec.js | 85 ++++++++++++++++++- 1 file changed, 84 insertions(+), 1 deletion(-) diff --git a/src/js/services/wallet-history.service.spec.js b/src/js/services/wallet-history.service.spec.js index 113ab34b3..a6d9e12a7 100644 --- a/src/js/services/wallet-history.service.spec.js +++ b/src/js/services/wallet-history.service.spec.js @@ -100,10 +100,49 @@ fdescribe('walletHistoryService', function(){ expect(returnedHistory.length).toBe(50); }); + it('updateLocalTxHistoryByPage, 2 in cache, getEarlier, keep cache, same 2 returned, so all transactions received.', function(){ + var fetchLimit; + var fetchSkip; + var returnedAllFetched; + var returnedErr; + var returnedHistory; + var walletIdForStorageGet; + walletMock.id = 'wallet456'; + + storageServiceMock.getTxHistory.and.callFake(function(walletId, cb){ + walletIdForStorageGet = walletId; + + cb(null, JSON.stringify(history.slice(0, 2))); + }); + + walletMock.getTxHistory.and.callFake(function(opts, cb){ + fetchSkip = opts.skip; + fetchLimit = opts.limit; + + cb(null, history.slice(0, 2)); + }); + + walletHistoryService.updateLocalTxHistoryByPage(walletMock, false, false, function(err, txs, allFetched){ + returnedErr = err; + returnedHistory = txs; + returnedAllFetched = allFetched; + }); + + expect(walletIdForStorageGet).toBe('wallet456'); + expect(fetchSkip).toBe(0); + expect(fetchLimit).toBe(50); + expect(returnedErr).toBeNull(); + expect(returnedHistory.length).toBe(2); + expect(returnedAllFetched).toBe(true); + expect(storageServiceMock.setTxHistory.calls.any()).toBe(false); + }); + it('updateLocalTxHistoryByPage, getEarlier, keep cache, sufficient overlap so saved.', function(){ var fetchLimit; var fetchSkip; + var returnedErr; var returnedHistory; + var returnedAllFetched; var savedTxs; var walletIdForStorageGet; var walletIdForStorageSet; @@ -128,9 +167,10 @@ fdescribe('walletHistoryService', function(){ cb(null); }); - walletHistoryService.updateLocalTxHistoryByPage(walletMock, false, false, function(err, txs){ + walletHistoryService.updateLocalTxHistoryByPage(walletMock, false, false, function(err, txs, allFetched){ returnedErr = err; returnedHistory = txs; + returnedAllFetched = allFetched; }); expect(walletIdForStorageGet).toBe('wallet67890'); @@ -140,6 +180,48 @@ fdescribe('walletHistoryService', function(){ expect(savedTxs.length).toBe(80); expect(returnedErr).toBeNull(); expect(returnedHistory.length).toBe(80); + expect(returnedAllFetched).toBe(false); + }); + + it('updateLocalTxHistoryByPage, cache empty, getLatest, do not flush cache, one 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, 1)); + }); + + 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(1); + expect(walletIdForStorageSet).toBe('wallet789'); + expect(returnedErr).toBeNull(); + expect(returnedHistory.length).toBe(1); }); it('updateLocalTxHistoryByPage, cache empty, getLatest, do not flush cache, some new so saved.', function(){ @@ -178,6 +260,7 @@ fdescribe('walletHistoryService', function(){ expect(fetchSkip).toBe(0); expect(fetchLimit).toBe(50); expect(savedTxs.length).toBe(10); + expect(walletIdForStorageSet).toBe('wallet789'); expect(returnedErr).toBeNull(); expect(returnedHistory.length).toBe(10); });