diff --git a/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts b/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts index e241ce58c94..f83774a0525 100644 --- a/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts +++ b/packages/angular-query-experimental/src/__tests__/inject-mutation.test-d.ts @@ -72,4 +72,13 @@ describe('injectMutation', () => { >() }) }) + + it('should allow calling mutate with no arguments when TVariables is optional undefinable', () => { + const mutation = injectMutation(() => ({ + mutationFn: (_variables: number | undefined) => sleep(0).then(() => 1), + })) + + expectTypeOf(mutation.mutate).toBeCallableWith() + expectTypeOf(mutation.mutateAsync).toBeCallableWith() + }) }) diff --git a/packages/preact-query/src/__tests__/useMutation.test-d.tsx b/packages/preact-query/src/__tests__/useMutation.test-d.tsx index 7b7a5806058..cba067db9db 100644 --- a/packages/preact-query/src/__tests__/useMutation.test-d.tsx +++ b/packages/preact-query/src/__tests__/useMutation.test-d.tsx @@ -79,6 +79,15 @@ describe('useMutation', () => { expectTypeOf(mutation.mutate).toBeCallableWith() }) + it('should allow calling mutate with no arguments when TVariables is optional undefinable', () => { + const mutation = useMutation({ + mutationFn: (_variables: number | undefined) => Promise.resolve(1), + }) + + expectTypeOf(mutation.mutate).toBeCallableWith() + expectTypeOf(mutation.mutateAsync).toBeCallableWith() + }) + it('should infer custom TError type', () => { class CustomError extends Error { code: number diff --git a/packages/react-query/src/__tests__/useMutation.test-d.tsx b/packages/react-query/src/__tests__/useMutation.test-d.tsx index 7b7a5806058..cba067db9db 100644 --- a/packages/react-query/src/__tests__/useMutation.test-d.tsx +++ b/packages/react-query/src/__tests__/useMutation.test-d.tsx @@ -79,6 +79,15 @@ describe('useMutation', () => { expectTypeOf(mutation.mutate).toBeCallableWith() }) + it('should allow calling mutate with no arguments when TVariables is optional undefinable', () => { + const mutation = useMutation({ + mutationFn: (_variables: number | undefined) => Promise.resolve(1), + }) + + expectTypeOf(mutation.mutate).toBeCallableWith() + expectTypeOf(mutation.mutateAsync).toBeCallableWith() + }) + it('should infer custom TError type', () => { class CustomError extends Error { code: number diff --git a/packages/solid-query/src/__tests__/useMutation.test-d.tsx b/packages/solid-query/src/__tests__/useMutation.test-d.tsx index 9bc689ea9b0..b5ae427d6e8 100644 --- a/packages/solid-query/src/__tests__/useMutation.test-d.tsx +++ b/packages/solid-query/src/__tests__/useMutation.test-d.tsx @@ -79,6 +79,15 @@ describe('useMutation', () => { expectTypeOf(mutation.mutate).toBeCallableWith() }) + it('should allow calling mutate with no arguments when TVariables is optional undefinable', () => { + const mutation = useMutation(() => ({ + mutationFn: (_variables: number | undefined) => Promise.resolve(1), + })) + + expectTypeOf(mutation.mutate).toBeCallableWith() + expectTypeOf(mutation.mutateAsync).toBeCallableWith() + }) + it('should infer custom TError type', () => { class CustomError extends Error { code: number diff --git a/packages/svelte-query/tests/createMutation/createMutation.test-d.ts b/packages/svelte-query/tests/createMutation/createMutation.test-d.ts index 4ea6027949e..a5a4bd8419a 100644 --- a/packages/svelte-query/tests/createMutation/createMutation.test-d.ts +++ b/packages/svelte-query/tests/createMutation/createMutation.test-d.ts @@ -79,6 +79,15 @@ describe('createMutation', () => { expectTypeOf(mutation.mutate).toBeCallableWith() }) + it('should allow calling mutate with no arguments when TVariables is optional undefinable', () => { + const mutation = createMutation(() => ({ + mutationFn: (_variables: number | undefined) => Promise.resolve(1), + })) + + expectTypeOf(mutation.mutate).toBeCallableWith() + expectTypeOf(mutation.mutateAsync).toBeCallableWith() + }) + it('should infer custom TError type', () => { class CustomError extends Error { code: number diff --git a/packages/vue-query/src/__tests__/useMutation.test-d.tsx b/packages/vue-query/src/__tests__/useMutation.test-d.tsx index 8433c72c4d4..80d8996e982 100644 --- a/packages/vue-query/src/__tests__/useMutation.test-d.tsx +++ b/packages/vue-query/src/__tests__/useMutation.test-d.tsx @@ -84,3 +84,16 @@ describe('Discriminated union return type', () => { expectTypeOf(mutation.variables).toEqualTypeOf() }) }) + +describe('useMutation', () => { + it('should allow calling mutate with no arguments when TVariables is optional undefinable', () => { + const mutation = reactive( + useMutation({ + mutationFn: (_variables: number | undefined) => sleep(0).then(() => 1), + }), + ) + + expectTypeOf(mutation.mutate).toBeCallableWith() + expectTypeOf(mutation.mutateAsync).toBeCallableWith() + }) +})