Тесты Jest проходят локально, но не выполняются в действиях Github с ошибкой типа: ожидайте(…).toBeInTheDocument не является функцией в действиях github

#typescript #jestjs #github-actions #react-testing-library

Вопрос:

Я тестирую свое приложение с помощью библиотеки реактивного тестирования и шутки в Typescript.

Мои тесты выполняются и передаются в моей локальной среде VS code, но в тех же тестах, которые я настроил в действиях Github, я получаю следующую ошибку

VS тесты кода:

 PASS src/pages/NewsPage/NewsPage.test.tsx  PASS src/features/LoadingPage/LoadingPage.test.tsx  PASS src/features/NewsBox/NewsBox.test.tsx  PASS src/features/SearchInput/SearchInput.test.tsx  PASS src/features/Navigation/Navigation.test.tsx  PASS src/App.test.tsx  PASS src/features/Footer/Footer.test.tsx  Test Suites: 7 passed, 7 total Tests: 23 passed, 23 total Snapshots: 6 passed, 6 total Time: 5.329 s Ran all test suites.  Watch Usage: Press w to show more.  

Тест действий на Github

 ● NewsPage › should render an error message when no news is available from user input   TypeError: expect(...).toBeInTheDocument is not a function   41 | const noNewsUserInputMock = `Sorry, there is no news currently available for ${noNewsUserInputProps.userInput} in ${noNewsUserInputProps.category}`  42 | render(lt;NewsPage {...noNewsUserInputProps} /gt;)  gt; 43 | expect(screen.getByText(noNewsUserInputMock)).toBeInTheDocument()  | ^  44 | })  45 |   46 | it('should render an error message when no news is available in category selection', () =gt; {  

Я уже пытался добавить файл jest.config.

 module.exports = {  "setupFilesAfterEnv": [  "lt;rootDirgt;/src/setupTests.ts"  ]  }  

setupTest.ts

 import '@testing-library/jest-dom/extend-expect' import '@testing-library/jest-dom'  

Пакет.json

 "test": "react-scripts test --coverage --env=jsdom" "@testing-library/jest-dom": "^5.14.1",  "@testing-library/react": "^12.1.2",  "@testing-library/user-event": "^13.4.2",  "@types/jest": "^27.0.2",  "@types/node": "^16.11.1",  "@types/react": "^17.0.30",  "@types/react-dom": "^17.0.9",  "@types/testing-library__jest-dom": "^5.14.1",  "prettier": "^2.4.1",  "react-test-renderer": "^17.0.2",  "typescript": "^4.4.4"  

Я использую Borales/actions-yarn@v2.3.0 для выполнения моих команд действий на Github.

Если я изменю toBeInTheDocument() на toBeTruthy(), тесты в Github пройдут.

В этом случае я совершенно не понимаю, почему это должно работать локально, а не в рамках действий Github. Любой совет был бы очень признателен