#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. Любой совет был бы очень признателен