From 9630a174f9ebdb7b0bdb4120acf43006b89f22de Mon Sep 17 00:00:00 2001 From: Nick Taylor Date: Tue, 18 Feb 2020 13:54:18 -0500 Subject: [PATCH] Added jest config to support test utility modules. (#6154) [deploy] --- docs/tests/frontend-tests.md | 41 ++++++++++++++++++++++++++++++++++++ docs/tests/preact-tests.md | 32 ---------------------------- docs/tests/readme.md | 2 +- jest.config.js | 7 +++++- 4 files changed, 48 insertions(+), 34 deletions(-) create mode 100644 docs/tests/frontend-tests.md delete mode 100644 docs/tests/preact-tests.md diff --git a/docs/tests/frontend-tests.md b/docs/tests/frontend-tests.md new file mode 100644 index 000000000..6aa1ac6fc --- /dev/null +++ b/docs/tests/frontend-tests.md @@ -0,0 +1,41 @@ +--- +title: Frontend Tests +--- + +# Frontend Tests + +The test code is located within the same directory as each component, inside a +`__tests__` directory. + +```shell +$ tree app/javascript/article-form -L 1 +app/javascript/article-form +├── __tests__ +└── articleForm.jsx +``` + +The testing library being used is [Jest](https://jestjs.io/). + +- For unit tests, use jest's [expect API](https://jestjs.io/docs/en/expect) +- For snapshot testing of Preact components, use + [preact-render-spy](https://github.com/mzgoddard/preact-render-spy) and + [preact-render-to-json](https://github.com/nathancahill/preact-render-to-json). + +You can run those tests with: + +```shell +npm run test +``` + +or + +```shell +yarn test +``` + +At the end of the test's execution, you will see the code coverage for the +Preact components in our codebase. + +If tests require utility modules, create them in a `utilities` folder under the +`__tests__` folder. Jest is configured to not treat the `utilities` folder as a +test suite. diff --git a/docs/tests/preact-tests.md b/docs/tests/preact-tests.md deleted file mode 100644 index 21d4d6097..000000000 --- a/docs/tests/preact-tests.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Preact Tests ---- - -# Preact Tests - -The test code is located within the same directory as each component, inside a -`__tests__` directory. - -```shell -$ tree app/javascript/article-form -L 1 -app/javascript/article-form -├── __tests__ -└── articleForm.jsx -``` - -The testing library being used is [Jest](https://jestjs.io/). - -You can run those tests with: - -```shell -npm run test -``` - -or - -```shell -yarn test -``` - -At the end of the test's execution, you will see the code coverage for the Preact -components in our codebase. diff --git a/docs/tests/readme.md b/docs/tests/readme.md index dd439a567..2be21f6ea 100644 --- a/docs/tests/readme.md +++ b/docs/tests/readme.md @@ -4,7 +4,7 @@ items: - acceptance-tests.md - integration-tests.md - unit-functional-tests.md - - preact-tests.md + - frontend-tests.md - accessibility-tests.md - regression-tests.md - code-coverage.md diff --git a/jest.config.js b/jest.config.js index bdcc67791..fd2188e20 100644 --- a/jest.config.js +++ b/jest.config.js @@ -12,5 +12,10 @@ module.exports = { snapshotSerializers: ['preact-render-spy/snapshot'], // The webpack config folder for webpacker is excluded as it has a test.js file that gets // picked up by jest if this folder is not excluded causing a false negative of a test suite failing. - testPathIgnorePatterns: ['/node_modules/', './config/webpack'], + testPathIgnorePatterns: [ + '/node_modules/', + './config/webpack', + // Allows developers to add utility modules that jest won't run as test suites. + '/__tests__/utilities/', + ], };