Skip to content

Commit

Permalink
feat: adds withMockProvider to testUtils
Browse files Browse the repository at this point in the history
  • Loading branch information
adrian-marcelo-gallardo committed Apr 10, 2020
1 parent d14a438 commit 4734b6a
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 2 deletions.
2 changes: 2 additions & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { ContextType } from 'react';
import connectContext, { connectContextFactory, useConnectedContextFactory, mergedConnectContextFactory, useMergedConnectedContextFactory } from './connectContext';
import createContextProvider from './createContextProvider';
import createMergedStore from './createMergedStore';
import { withMockProvider } from './testUtils';

export default createContextProvider;
export {
Expand All @@ -13,4 +14,5 @@ export {
useMergedConnectedContextFactory,
createMergedStore,
ContextType,
withMockProvider,
};
18 changes: 18 additions & 0 deletions src/testUtils.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import React from 'react';

import { getProviderContext } from './createContextProvider';
import { KeyValue } from './typings';

function withMockProvider(Provider: any, Component: React.ReactNode) {
const Context: React.Context<any> = getProviderContext(Provider);

return ({ state = {}, actions = {} }: { state: KeyValue, actions: KeyValue }) => (
<Context.Provider value={{ state, actions }}>
{Component}
</Context.Provider>
);
}

export {
withMockProvider,
};
5 changes: 3 additions & 2 deletions src/typings.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ export type ActionCreators = {
[key: string]: Action;
};

export type CustomProvider = React.ComponentType<any> | React.FC<any>;
export type CustomComponent = React.ComponentType<any> | React.FC<any>;
export type CustomProvider = CustomComponent;

export type CreateContextProviderReturn = [
CustomProvider,
Expand Down Expand Up @@ -44,7 +45,7 @@ export type ConnectContextOptions = {
afterMerge?: AfterMergeCallback;
}

export type ConnectContextFactory = (Component: React.ComponentType<any> | React.FC<any>, options: ConnectContextOptions) => React.FunctionComponent;
export type ConnectContextFactory = (Component: CustomComponent, options: ConnectContextOptions) => React.FunctionComponent;

export type ProviderCollection = CustomProvider[] | {[key: string]: CustomProvider}
export type ContextCollection = React.Context<any>[] | {[key: string]: React.Context<any>}

0 comments on commit 4734b6a

Please sign in to comment.