localStorage内にデータを格納するActionをjestでテストするときにlocalStorage is not defined
と出て、それはそうとなったので、モックを書く。
var localStorageMock = (function() {
var store = {};
return {
getItem: function(key) {
return store[key] || null;
},
setItem: function(key, value) {
store[key] = value.toString();
},
clear: function() {
store = {};
}
};
})();
Object.defineProperty(window, 'localStorage', {
value: localStorageMock
});
Testing localStorage - Google グループ
上記をbrowserMocks.js
として適当なところに保存し、package.json
にsetupFiles
として追記する。
"jest": {
"setupFiles": ["/path/to/browserMocks.js"],
"testURL": "http://127.0.0.1/"
}
ここでtestURL
を設定しておかないと、SecurityError
と怒られる(それはそう)。
あとは普通にActionのテストを書いてあげればOK。