1+ import '../../testMocks/mockSpeciesContext' ;
12import React from 'react' ;
23import { BrowserRouter } from 'react-router-dom' ;
34import {
78 within ,
89 cleanup ,
910 waitForElementToBeRemoved ,
11+ waitFor ,
1012} from '@testing-library/react' ;
1113import userEvent from '@testing-library/user-event' ;
1214// import { session, hasPermission, POLICIES } from '../models/auth';
@@ -20,6 +22,22 @@ import { SPECIES } from './fixtures';
2022import * as loglevel from 'loglevel' ;
2123const log = loglevel . getLogger ( '../tests/species.test' ) ;
2224
25+ import { QueryClient , QueryClientProvider } from '@tanstack/react-query' ;
26+ const qc = new QueryClient ( {
27+ defaultOptions : {
28+ queries : { retry : false , refetchOnWindowFocus : false } ,
29+ } ,
30+ } ) ;
31+
32+ const SpeciesProviderWithOverrides = ( { children, overrides } ) => {
33+ const base = React . useContext ( SpeciesContext ) ;
34+ return (
35+ < SpeciesContext . Provider value = { { ...base , ...overrides } } >
36+ { children }
37+ </ SpeciesContext . Provider >
38+ ) ;
39+ } ;
40+
2341describe ( 'species management' , ( ) => {
2442 let api ;
2543 let speciesValues ;
@@ -67,13 +85,15 @@ describe('species management', () => {
6785 describe ( '<SpeciesView /> renders page' , ( ) => {
6886 beforeEach ( async ( ) => {
6987 render (
70- < BrowserRouter >
71- < AppProvider >
72- < SpeciesProvider value = { speciesValues } >
73- < SpeciesView />
74- </ SpeciesProvider >
75- </ AppProvider >
76- </ BrowserRouter >
88+ < QueryClientProvider client = { qc } >
89+ < BrowserRouter >
90+ < AppProvider >
91+ < SpeciesProvider value = { speciesValues } >
92+ < SpeciesView />
93+ </ SpeciesProvider >
94+ </ AppProvider >
95+ </ BrowserRouter >
96+ </ QueryClientProvider >
7797 ) ;
7898 await act ( ( ) => api . getSpecies ( ) ) ;
7999 } ) ;
@@ -161,8 +181,10 @@ describe('species management', () => {
161181
162182 afterEach ( cleanup ) ;
163183
164- it ( 'api.createSpecies should be called with "water melon"' , ( ) => {
165- expect ( api . createSpecies . mock . calls [ 0 ] [ 0 ] . name ) . toBe ( 'water melon' ) ;
184+ it ( 'api.createSpecies should be called with "water melon"' , async ( ) => {
185+ await waitFor ( ( ) => {
186+ expect ( api . createSpecies . mock . calls [ 0 ] [ 0 ] . name ) . toBe ( 'water melon' ) ;
187+ } ) ;
166188 } ) ;
167189
168190 // it('species list should be 3 (1 added)', () => {
0 commit comments