#reactjs #graphql #react-testing-library
Вопрос:
Я видел несколько очень похожих вопросов, но ни один из них не имел подходящего для меня решения
У меня есть компонент React Graphql, который возвращает следующую ошибку
мой тест выглядит так
it('Should created provider when click in btn success', async () => {
jest
.spyOn(require('next/router'), 'useRouter')
.mockImplementation(() => ({
route: '/providers',
pathname: '',
query: { id: '' },
asPath: '',
push: jest.fn(),
}));
const wrapper = renderProviderCreateOrEdit({
mockStoreProvider: mockStore(),
mocksByAction: mockCreate,
});
await act(async () => {
await new Promise((resolve) =>
setTimeout(resolve, 1000)
);
});
userEvent.click(
wrapper.getByTestId('btn-createOrEditProvider')
);
console.log(wrapper.container.innerHTML);
});
Ошибка возвращается ко мне в следующем тесте, что приводит к сбою теста.
Примечание: Если я удалю этот тест выше, тест ниже пройдет
it('Should show error in provider', async () => {
mockByEdit();
const wrapper = renderProviderCreateOrEdit({
mockStoreProvider: mockStore(),
mocksByAction: mockError,
});
await act(async () => {
await new Promise((resolve) =>
setTimeout(resolve, 1000)
);
});
expect(
wrapper.getByTestId('container-error-data')
).toBeInTheDocument();
});
Below is an example of my render
function renderProviderCreateOrEdit({
mockStoreProvider,
mocksByAction,
}: providerProps) {
return render(
<Provider store={mockStoreProvider}>
<MockedProvider
mocks={mocksByAction}
addTypename={false}
>
<CreateOrEditProvider />
</MockedProvider>
</Provider>
);
}
Please help me, I’ve done a lot of research, tried various solutions, including clearing the cache of mocks before each test
I also tried solutions like __typename