From 5641c50125576d789f588159283503eb50322c7d Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Mon, 13 Apr 2026 09:57:23 +0900 Subject: [PATCH 1/2] test(vue-query/mutationOptions): add type tests for getter overloads --- .../src/__tests__/mutationOptions.test-d.ts | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/packages/vue-query/src/__tests__/mutationOptions.test-d.ts b/packages/vue-query/src/__tests__/mutationOptions.test-d.ts index 9f0d1fe4a7..155cb79588 100644 --- a/packages/vue-query/src/__tests__/mutationOptions.test-d.ts +++ b/packages/vue-query/src/__tests__/mutationOptions.test-d.ts @@ -243,4 +243,57 @@ describe('mutationOptions', () => { const resolved = options() expectTypeOf(resolved.mutationFn).not.toBeUndefined() }) + + it('should error if mutationFn return type mismatches TData (getter)', () => { + assertType( + mutationOptions(() => ({ + // @ts-expect-error this is a good error, because return type is string, not number + mutationFn: async () => Promise.resolve('wrong return'), + })), + ) + }) + + it('should infer all types when not explicitly provided (getter)', () => { + expectTypeOf( + mutationOptions(() => ({ + mutationFn: (id: string) => Promise.resolve(id.length), + mutationKey: ['key'], + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + })), + ).toEqualTypeOf< + () => WithRequired< + MutationOptions, + 'mutationKey' + > + >() + expectTypeOf( + mutationOptions(() => ({ + mutationFn: (id: string) => Promise.resolve(id.length), + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + })), + ).toEqualTypeOf< + () => Omit< + MutationOptions, + 'mutationKey' + > + >() + }) + + it('should work when used with useMutation (getter)', () => { + const mutation = useMutation( + mutationOptions(() => ({ + mutationKey: ['key'], + mutationFn: () => Promise.resolve('data'), + onSuccess: (data) => { + expectTypeOf(data).toEqualTypeOf() + }, + })), + ) + expectTypeOf(mutation.data.value).toEqualTypeOf() + }) + }) From 097605126024aed445d873245439a6db25dc3b52 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Mon, 13 Apr 2026 00:58:53 +0000 Subject: [PATCH 2/2] ci: apply automated fixes --- packages/vue-query/src/__tests__/mutationOptions.test-d.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/vue-query/src/__tests__/mutationOptions.test-d.ts b/packages/vue-query/src/__tests__/mutationOptions.test-d.ts index 155cb79588..14d19a9f43 100644 --- a/packages/vue-query/src/__tests__/mutationOptions.test-d.ts +++ b/packages/vue-query/src/__tests__/mutationOptions.test-d.ts @@ -295,5 +295,4 @@ describe('mutationOptions', () => { ) expectTypeOf(mutation.data.value).toEqualTypeOf() }) - })