import type { Persistor } from '@segment/sovran-react-native'; export const createMockStore = (initialState: T) => { let state = initialState; return { getState: jest.fn((...args: unknown[]) => { // Both overloads return a Promise in the mock for simplicity. // Supports getState() and getState(true). void args; return Promise.resolve(state); }), dispatch: jest.fn((action: unknown) => { if (typeof action === 'function') { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment state = action(state); } else { state = (action as { payload: unknown }).payload as T; } return Promise.resolve(state); }), }; }; export const createTestPersistor = ( storage: Record = {} ): Persistor => ({ get: async (key: string): Promise => Promise.resolve(storage[key] as T), set: async (key: string, state: T): Promise => { storage[key] = state; return Promise.resolve(); }, });