chore(test): mock localStorage

This commit is contained in:
Anh Hong 2020-03-25 01:55:13 +07:00 committed by GitHub
parent 56738fbd09
commit b73c4ad23d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -5,6 +5,7 @@ var AppDispatcher = require('../dispatcher/AppDispatcher');
var EventEmitter = require('events').EventEmitter;
var levelSequences = require('../../levels').levelSequences;
var sequenceInfo = require('../../levels').sequenceInfo;
var util = require('../util');
var ActionTypes = AppConstants.ActionTypes;
var SOLVED_MAP_STORAGE_KEY = 'solvedMap';
@ -13,6 +14,29 @@ var _levelMap = {};
var _solvedMap = {};
var _sequences = [];
if (!util.isBrowser()) {
// https://stackoverflow.com/a/26177872/6250402
var storage = {};
var localStorage = {
setItem: function(key, value) {
storage[key] = value || '';
},
getItem: function(key) {
return key in storage ? storage[key] : null;
},
removeItem: function(key) {
delete storage[key];
},
get length() {
return Object.keys(storage).length;
},
key: function(i) {
const keys = Object.keys(storage);
return keys[i] || null;
}
};
}
try {
_solvedMap = JSON.parse(
localStorage.getItem(SOLVED_MAP_STORAGE_KEY) || '{}'