From 90e3a2f76616f2efdce8623857d681b463cf8f73 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Wed, 18 Feb 2026 18:53:35 +0900 Subject: [PATCH] test(svelte-query/useMutationState): add test for 'select' option in 'useMutationState' --- .../useMutationState/SelectExample.svelte | 34 +++++++++++++++++++ .../useMutationState.svelte.test.ts | 28 +++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 packages/svelte-query/tests/useMutationState/SelectExample.svelte diff --git a/packages/svelte-query/tests/useMutationState/SelectExample.svelte b/packages/svelte-query/tests/useMutationState/SelectExample.svelte new file mode 100644 index 00000000000..683f68043eb --- /dev/null +++ b/packages/svelte-query/tests/useMutationState/SelectExample.svelte @@ -0,0 +1,34 @@ + + + + +
+ Variables: {JSON.stringify(variables)} +
diff --git a/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts b/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts index 7f82d715f50..81a93d040b4 100644 --- a/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts +++ b/packages/svelte-query/tests/useMutationState/useMutationState.svelte.test.ts @@ -2,6 +2,8 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest' import { fireEvent, render } from '@testing-library/svelte' import { sleep } from '@tanstack/query-test-utils' import BaseExample from './BaseExample.svelte' +import SelectExample from './SelectExample.svelte' +import type { Mutation } from '@tanstack/query-core' describe('useMutationState', () => { beforeEach(() => { @@ -79,6 +81,32 @@ describe('useMutationState', () => { expect(rendered.getByText('Data: ["error"]')).toBeInTheDocument() }) + test('should return selected value when using select option', async () => { + const mutationKey = ['select'] + + const rendered = render(SelectExample, { + props: { + mutationOpts: () => ({ + mutationKey, + mutationFn: () => sleep(10).then(() => 'data'), + }), + mutationStateOpts: { + filters: { mutationKey }, + select: (mutation: Mutation) => mutation.state.status, + }, + }, + }) + + expect(rendered.getByText('Variables: []')).toBeInTheDocument() + + fireEvent.click(rendered.getByRole('button', { name: /mutate/i })) + await vi.advanceTimersByTimeAsync(0) + expect(rendered.getByText('Variables: ["pending"]')).toBeInTheDocument() + + await vi.advanceTimersByTimeAsync(10) + expect(rendered.getByText('Variables: ["success"]')).toBeInTheDocument() + }) + test('Can select specific mutation using mutation key', async () => { const successMutationFn = vi.fn(() => sleep(10).then(() => 'data')) const errorMutationFn = vi