Почему я перенаправляю на страницу входа во время тестирования компонента приложения без шуток?

#reactjs #testing #jestjs #react-testing-library

Вопрос:

Я тестирую свой компонент приложения , выполняя процесс аутентификации (я начинаю с целевой страницы, затем нажимаю кнопку войти, чтобы перенаправиться на страницу входа, заполняю поле электронной почты и пароля и нажимаю кнопку войти, чтобы получить доступ к первой странице, которая в моем случае является страницей установки), но после успешного ответа на вход с сервера я перенаправлен на страницу входа, и я не могу понять, почему. Вот тест, о котором идет речь:

 it( 'Login', async () =gt; {   render(lt;App /gt;)    // Check we are on the good location at the begining of the test  await waitFor(() =gt; expect(window.location.pathname).toBe('/'))   // env variable needed to connect to the account  const email = process.env.TEST_EMAIL  const password = process.env.TEST_PASSWORD   // // signIn button from the landing page  const signInButton = screen.getByTestId('landing-signin')  expect(signInButton).toBeInTheDocument()   // click action of this button  fireEvent.click(signInButton)   // check the path  await waitFor( async () =gt; expect(window.location.pathname).toBe('/signin'))   // check the presence of elements in signin page  const emailField = screen.getByPlaceholderText('Email address')  const passwordField = screen.getByPlaceholderText('Your password')    expect(passwordField).toBeInTheDocument()  expect(emailField).toBeInTheDocument()   // fill the credentials  userEvent.type(emailField, email)  userEvent.type(passwordField, password)   const button = screen.getByTestId('submit-button')  expect(button).toBeInTheDocument()   // fire event login by clicking the button  act(() =gt; {  userEvent.click(button)  })    // // check the path  await waitFor( async () =gt; expect(window.location.pathname).toBe('/installations'))    // check the title of installation page to be in the document  const title = screen.getByText('Installation selection')   expect(title).toBeInTheDocument()    // check info to be in the document  const infoText = screen.getByText('Please, wait a little bit while we are fetching {{data}}')  expect(infoText).toBeInTheDocument()     // back to /signin  console.log('window.location.pathname', window.location.pathname)   })  

У меня включен jsdom, я использую библиотеку Jest и React-тестирования. Я нахожу некоторые элементы страницы установки, но получаю перенаправление на страницу входа.

Комментарии:

1. Трудно сказать, не видя кода App компонента. Не могли бы вы предоставить код для тестируемого компонента?