@@ -221,25 +221,6 @@ describe('useDecide', () => {
221221 expect ( result . current . decision ) . toBe ( MOCK_DECISION ) ;
222222 } ) ;
223223
224- it ( 'should re-evaluate when setClientReady fire' , async ( ) => {
225- const mockUserContext = createMockUserContext ( ) ;
226- store . setUserContext ( mockUserContext ) ;
227- // Client has no config yet
228- const wrapper = createWrapper ( store , mockClient ) ;
229- const { result } = renderHook ( ( ) => useDecide ( 'flag_1' ) , { wrapper } ) ;
230-
231- expect ( result . current . isLoading ) . toBe ( true ) ;
232-
233- // Simulate config becoming available when onReady resolves
234- ( mockClient . getOptimizelyConfig as ReturnType < typeof vi . fn > ) . mockReturnValue ( { revision : '1' } ) ;
235- await act ( async ( ) => {
236- store . setClientReady ( true ) ;
237- } ) ;
238-
239- expect ( result . current . isLoading ) . toBe ( false ) ;
240- expect ( result . current . decision ) . toBe ( MOCK_DECISION ) ;
241- } ) ;
242-
243224 it ( 'should return error from store with isLoading: false' , async ( ) => {
244225 const wrapper = createWrapper ( store , mockClient ) ;
245226 const { result } = renderHook ( ( ) => useDecide ( 'flag_1' ) , { wrapper } ) ;
@@ -363,33 +344,6 @@ describe('useDecide', () => {
363344 expect ( result . current . decision ) . toBeNull ( ) ;
364345 } ) ;
365346
366- it ( 'should re-call decide() when setClientReady fires after sync decision was already served' , async ( ) => {
367- // Sync datafile scenario: config + userContext available before onReady
368- mockClient = createMockClient ( true ) ;
369- const mockUserContext = createMockUserContext ( ) ;
370- store . setUserContext ( mockUserContext ) ;
371-
372- const wrapper = createWrapper ( store , mockClient ) ;
373- const { result } = renderHook ( ( ) => useDecide ( 'flag_1' ) , { wrapper } ) ;
374-
375- // Decision already served
376- expect ( result . current . isLoading ) . toBe ( false ) ;
377- expect ( result . current . decision ) . toBe ( MOCK_DECISION ) ;
378- expect ( mockUserContext . decide ) . toHaveBeenCalledTimes ( 1 ) ;
379-
380- // onReady() resolves → setClientReady(true) fires → store state changes →
381- // useSyncExternalStore re-renders → useMemo recomputes → decide() called again.
382- // This is a redundant call since config + userContext haven't changed,
383- // but it's a one-time cost per flag per page load.
384- await act ( async ( ) => {
385- store . setClientReady ( true ) ;
386- } ) ;
387-
388- expect ( mockUserContext . decide ) . toHaveBeenCalledTimes ( 2 ) ;
389- expect ( result . current . isLoading ) . toBe ( false ) ;
390- expect ( result . current . decision ) . toBe ( MOCK_DECISION ) ;
391- } ) ;
392-
393347 it ( 'should re-evaluate decision when OPTIMIZELY_CONFIG_UPDATE fires from the client' , async ( ) => {
394348 const mockUserContext = createMockUserContext ( ) ;
395349 const { wrapper, fireConfigUpdate } = createProviderWrapper ( mockUserContext ) ;
@@ -402,6 +356,7 @@ describe('useDecide', () => {
402356 } ) ;
403357
404358 expect ( result . current . decision ) . toBe ( MOCK_DECISION ) ;
359+
405360 const callCountBeforeUpdate = ( mockUserContext . decide as ReturnType < typeof vi . fn > ) . mock . calls . length ;
406361
407362 // Simulate a new datafile with a different decision
0 commit comments