UNPKG

@snipsonian/observable-state

Version:

Observable-state snippets (redux-like)

25 lines (24 loc) 1.16 kB
import { IBaseIntegrationTester } from '@snipsonian/core/es/typings/testing'; import { IRestHandlerMock } from '@snipsonian/axios/es/testing/mockRestServer'; import { Action } from '../types'; declare type TCallback<CallbackProps> = (callbackProps: CallbackProps) => void; export interface IStateIntegrationTester<State> extends IBaseIntegrationTester { given: (props: IGivenProps, callback?: TCallback<IGivenCallbackProps<State>>) => void; when: <ResultData = any>(actionOrToBeExecuted: TActionOrToBeExecuted<ResultData>) => Promise<ResultData>; then: (callback?: TCallback<IThenCallbackProps<State>>) => void; } interface IGivenProps { keepState?: boolean; restHandlerMocks?: IRestHandlerMock[]; } interface IGivenCallbackProps<State> { setupActions: (...actionsToSetup: Action[]) => void; setupState: (stateUpdater: (draftState: State) => void) => void; getState: () => State; } export declare type TActionOrToBeExecuted<ResultData = any> = Action | TToBeExecuted<ResultData>; declare type TToBeExecuted<ResultData> = () => Promise<ResultData>; interface IThenCallbackProps<State> { getState: () => State; } export {};