For now, shelve persistance across sessions

This commit is contained in:
Luke Barnard 2018-06-15 17:08:11 +01:00
parent edfc9a0841
commit 488cc416cf
3 changed files with 17 additions and 10 deletions

View file

@ -55,13 +55,13 @@ export default class DecryptionFailureTracker {
this.trackDecryptionFailure = fn; this.trackDecryptionFailure = fn;
} }
loadTrackedEventHashMap() { // loadTrackedEventHashMap() {
this.trackedEventHashMap = JSON.parse(localStorage.getItem('mx-decryption-failure-event-id-hashes')) || {}; // this.trackedEventHashMap = JSON.parse(localStorage.getItem('mx-decryption-failure-event-id-hashes')) || {};
} // }
saveTrackedEventHashMap() { // saveTrackedEventHashMap() {
localStorage.setItem('mx-decryption-failure-event-id-hashes', JSON.stringify(this.trackedEventHashMap)); // localStorage.setItem('mx-decryption-failure-event-id-hashes', JSON.stringify(this.trackedEventHashMap));
} // }
eventDecrypted(e) { eventDecrypted(e) {
if (e.isDecryptionFailure()) { if (e.isDecryptionFailure()) {
@ -143,7 +143,9 @@ export default class DecryptionFailureTracker {
this.trackedEventHashMap, this.trackedEventHashMap,
); );
this.saveTrackedEventHashMap(); // Commented out for now for expediency, we need to consider unbound nature of storing
// this in localStorage
// this.saveTrackedEventHashMap();
const dedupedFailures = dedupedFailuresMap.values(); const dedupedFailures = dedupedFailuresMap.values();

View file

@ -1313,7 +1313,10 @@ export default React.createClass({
// TODO: Pass reason for failure as third argument to trackEvent // TODO: Pass reason for failure as third argument to trackEvent
Analytics.trackEvent('E2E', 'Decryption failure'); Analytics.trackEvent('E2E', 'Decryption failure');
}); });
dft.loadTrackedEventHashMap();
// Shelved for later date when we have time to think about persisting history of
// tracked events across sessions.
// dft.loadTrackedEventHashMap();
const stopDft = dft.start(); const stopDft = dft.start();

View file

@ -151,7 +151,7 @@ describe('DecryptionFailureTracker', function() {
done(); done();
}); });
it('should not track a failure for an event that was tracked in a previous session', (done) => { xit('should not track a failure for an event that was tracked in a previous session', (done) => {
// This test uses localStorage, clear it beforehand // This test uses localStorage, clear it beforehand
localStorage.clear(); localStorage.clear();
@ -171,7 +171,9 @@ describe('DecryptionFailureTracker', function() {
// Simulate the browser refreshing by destroying tracker and creating a new tracker // Simulate the browser refreshing by destroying tracker and creating a new tracker
const secondTracker = new DecryptionFailureTracker((failure) => failures.push(failure)); const secondTracker = new DecryptionFailureTracker((failure) => failures.push(failure));
secondTracker.loadTrackedEventHashMap();
//secondTracker.loadTrackedEventHashMap();
secondTracker.eventDecrypted(decryptedEvent); secondTracker.eventDecrypted(decryptedEvent);
secondTracker.checkFailures(Infinity); secondTracker.checkFailures(Infinity);
secondTracker.trackFailure(); secondTracker.trackFailure();