Я использую jest
с MockedProvider
реактивного-Аполлона, и у меня возникают проблемы, потому что MockedProvider
, кажется, ведет себя асинхронно.
Учитывая следующий простой компонент:
const Component = () => <Query query={query}>(({loading, data }) => if(loading) return 'loading' else if (data) return 'data' else return 'nothing'</Query>
Этот тест:
it('', done => {
const renderer = TestRenderer.create(
<MockedProvider mocks={myMock} >
<Component/>
</MockedProvider>
)
expect(renderer.toJSON()).toMatchSnapshot()
показывает снимок: loading
но если я добавлю простой тайм-аут в 1 мс:
it('', done => {
const renderer = TestRenderer.create(
<MockedProvider mocks={myMock} >
<Component/>
</MockedProvider>
)
setTimeout(() => {
expect(renderer.toJSON()).toMatchSnapshot()
done()
}, 1);
Я получаю снимок: data
Есть ли более элегантный способ обойти это?