@@ -2,6 +2,8 @@ import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'
22import { fireEvent , render } from '@testing-library/svelte'
33import { sleep } from '@tanstack/query-test-utils'
44import BaseExample from './BaseExample.svelte'
5+ import SelectExample from './SelectExample.svelte'
6+ import type { Mutation } from '@tanstack/query-core'
57
68describe ( 'useMutationState' , ( ) => {
79 beforeEach ( ( ) => {
@@ -79,6 +81,32 @@ describe('useMutationState', () => {
7981 expect ( rendered . getByText ( 'Data: ["error"]' ) ) . toBeInTheDocument ( )
8082 } )
8183
84+ test ( 'should return selected value when using select option' , async ( ) => {
85+ const mutationKey = [ 'select' ]
86+
87+ const rendered = render ( SelectExample , {
88+ props : {
89+ mutationOpts : ( ) => ( {
90+ mutationKey,
91+ mutationFn : ( ) => sleep ( 10 ) . then ( ( ) => 'data' ) ,
92+ } ) ,
93+ mutationStateOpts : {
94+ filters : { mutationKey } ,
95+ select : ( mutation : Mutation ) => mutation . state . status ,
96+ } ,
97+ } ,
98+ } )
99+
100+ expect ( rendered . getByText ( 'Variables: []' ) ) . toBeInTheDocument ( )
101+
102+ fireEvent . click ( rendered . getByRole ( 'button' , { name : / m u t a t e / i } ) )
103+ await vi . advanceTimersByTimeAsync ( 0 )
104+ expect ( rendered . getByText ( 'Variables: ["pending"]' ) ) . toBeInTheDocument ( )
105+
106+ await vi . advanceTimersByTimeAsync ( 10 )
107+ expect ( rendered . getByText ( 'Variables: ["success"]' ) ) . toBeInTheDocument ( )
108+ } )
109+
82110 test ( 'Can select specific mutation using mutation key' , async ( ) => {
83111 const successMutationFn = vi . fn ( ( ) => sleep ( 10 ) . then ( ( ) => 'data' ) )
84112 const errorMutationFn = vi
0 commit comments