Использование заглушки 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 не работает

0 ответов

Другие вопросы по тегам