Skip to content

Commit

Permalink
Fix failing tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Jenn Creighton committed Apr 1, 2021
1 parent 90a9131 commit 6f8dc95
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 16 deletions.
4 changes: 2 additions & 2 deletions src/core/__tests__/QueryManager/index.ts
Expand Up @@ -5082,7 +5082,7 @@ describe('QueryManager', () => {

describe('awaitRefetchQueries', () => {
const awaitRefetchTest =
({ awaitRefetchQueries, testQueryError = false }: MutationBaseOptions & { testQueryError?: boolean }) =>
({ awaitRefetchQueries, testQueryError = false }: MutationBaseOptions<any, any, any> & { testQueryError?: boolean }) =>
new Promise((resolve, reject) => {
const query = gql`
query getAuthors($id: ID!) {
Expand Down Expand Up @@ -5156,7 +5156,7 @@ describe('QueryManager', () => {
{ observable },
result => {
expect(stripSymbols(result.data)).toEqual(queryData);
const mutateOptions: MutationOptions = {
const mutateOptions: MutationOptions<any, any, any> = {
mutation,
refetchQueries: ['getAuthors'],
};
Expand Down
2 changes: 1 addition & 1 deletion src/core/types.ts
Expand Up @@ -47,7 +47,7 @@ export type MutationQueryReducersMap<T = { [key: string]: any }> = {
[queryName: string]: MutationQueryReducer<T>;
};

export type MutationUpdaterFunction<T extends Record<string, any>, TVariables, TContext> = (
export type MutationUpdaterFunction<T, TVariables, TContext> = (
cache: ApolloCache<T>,
result: Omit<FetchResult<T>, 'context'>,
options: {
Expand Down
9 changes: 5 additions & 4 deletions src/react/components/types.ts
@@ -1,7 +1,7 @@
import { DocumentNode } from 'graphql';
import { TypedDocumentNode } from '@graphql-typed-document-node/core';

import { OperationVariables } from '../../core';
import { OperationVariables, Context } from '../../core';
import {
QueryFunctionOptions,
QueryResult,
Expand All @@ -22,11 +22,12 @@ export interface QueryComponentOptions<

export interface MutationComponentOptions<
TData = any,
TVariables = OperationVariables
> extends BaseMutationOptions<TData, TVariables> {
TVariables = OperationVariables,
TContext = Context,
> extends BaseMutationOptions<TData, TVariables, TContext> {
mutation: DocumentNode | TypedDocumentNode<TData, TVariables>;
children: (
mutateFunction: MutationFunction<TData, TVariables>,
mutateFunction: MutationFunction<TData, TVariables, TContext>,
result: MutationResult<TData>
) => JSX.Element | null;
}
Expand Down
14 changes: 8 additions & 6 deletions src/react/hoc/mutation-hoc.tsx
Expand Up @@ -3,6 +3,7 @@ import { DocumentNode } from 'graphql';
import hoistNonReactStatics from 'hoist-non-react-statics';

import { parser } from '../parser';
import { Context } from '../../core/types';
import {
BaseMutationOptions,
MutationFunction,
Expand All @@ -20,9 +21,10 @@ import { OperationOption, OptionProps, MutateProps } from './types';

export function withMutation<
TProps extends TGraphQLVariables | {} = {},
TData = {},
TData extends Record<string, any> = {},
TGraphQLVariables = {},
TChildProps = MutateProps<TData, TGraphQLVariables>
TChildProps = MutateProps<TData, TGraphQLVariables>,
TContext = Context,
>(
document: DocumentNode,
operationOptions: OperationOption<
Expand All @@ -41,9 +43,9 @@ export function withMutation<
alias = 'Apollo'
} = operationOptions;

let mapPropsToOptions = options as (props: any) => BaseMutationOptions;
let mapPropsToOptions = options as (props: any) => BaseMutationOptions<TData, TGraphQLVariables, TContext>;
if (typeof mapPropsToOptions !== 'function')
mapPropsToOptions = () => options as BaseMutationOptions;
mapPropsToOptions = () => options as BaseMutationOptions<TData, TGraphQLVariables, TContext>;

return (
WrappedComponent: React.ComponentType<TProps & TChildProps>
Expand All @@ -54,7 +56,7 @@ export function withMutation<
static WrappedComponent = WrappedComponent;
render() {
let props = this.props as TProps;
const opts = mapPropsToOptions(props);
const opts = mapPropsToOptions(props) as BaseMutationOptions<TData, TGraphQLVariables, TContext>;

if (operationOptions.withRef) {
this.withRef = true;
Expand All @@ -63,7 +65,7 @@ export function withMutation<
});
}
if (!opts.variables && operation.variables.length > 0) {
opts.variables = calculateVariablesFromProps(operation, props);
opts.variables = calculateVariablesFromProps(operation, props) as TGraphQLVariables;
}

return (
Expand Down
8 changes: 5 additions & 3 deletions src/react/hoc/types.ts
Expand Up @@ -7,6 +7,7 @@ import {
UpdateQueryOptions,
FetchMoreQueryOptions,
SubscribeToMoreOptions,
Context,
} from '../../core';
import {
MutationFunction,
Expand Down Expand Up @@ -89,16 +90,17 @@ export interface OperationOption<
TProps,
TData,
TGraphQLVariables = OperationVariables,
TChildProps = ChildProps<TProps, TData, TGraphQLVariables>
TChildProps = ChildProps<TProps, TData, TGraphQLVariables>,
TContext = Context,
> {
options?:
| BaseQueryOptions<TGraphQLVariables>
| BaseMutationOptions<TData, TGraphQLVariables>
| BaseMutationOptions<TData, TGraphQLVariables, TContext>
| ((
props: TProps
) =>
| BaseQueryOptions<TGraphQLVariables>
| BaseMutationOptions<TData, TGraphQLVariables>
| BaseMutationOptions<TData, TGraphQLVariables, TContext>
);
props?: (
props: OptionProps<TProps, TData, TGraphQLVariables>,
Expand Down

0 comments on commit 6f8dc95

Please sign in to comment.