Использование заглушки sinon для проверки приставки
Первоначально я вручную очищал localStorage/sessionStorage через window.sessionStorage.clear();
, но при переходе на использование redux-persist
Похоже, заглушка не работает.
Код
import { PersistorConfig, purgeStoredState } from "redux-persist";
import { asyncLocalStorage, asyncSessionStorage } from "redux-persist/storages";
export function logout() {
purgeStoredState({
storage: asyncSessionStorage
});
purgeStoredState({
storage: asyncLocalStorage
});
return async (dispatch: (...args: any[]) => void) => {
// runs other logout code
};
}
Тест
import * as ReduxPersist from "redux-persist";
import { stub } from "sinon";
import * as actions from "../../../src/data-models/login/actions";
import { expect, React, spy } from "../../test-utils";
describe("Login actions", () => {
describe("Logout", () => {
it("should clear localStorage and sessionStorage via redux-persist",
() => {
const persistStub = stub(ReduxPersist, "purgeStoredState");
// Not sure why the stub isn't working, but we can revisit later. The value should be 2
actions.logout();
// assert fails. callCount is always 0, though I can see the code is being called by adding a quick console.log("hi") to redux-persist/es
expect(persistStub.callCount).to.equal(2);
});
});
});
Я что-то здесь упускаю? У меня есть много других тестов, использующих заглушку таким образом, но по какой-то причине redux-persist
не работает