This task encompasses the boilerplate to actually add Jest as a project development dependency.
== Configuration
Via T249301#6056623 and T249301#6057642:
- Consider the [https://github.com/vuejs/vue-jest vue-jest plugin]. Transforms are fine but testing //without// Webpack would be ideal. Here's [[ https://github.com/egardner/mediawiki-extensions-MachineVision/blob/884f2367e4e933889e6c54ab67af5a54a9e4388f/jest.config.js | MachineVision's setup ]]. Is there an opportunity to commonize the Jest config like mw-node-qunit does? It could be low effort to unify if there's interest in consuming a shared NPM package.
- MediaWiki dependencies are mocked out in [[ https://github.com/egardner/mediawiki-extensions-MachineVision/blob/884f236/jest.setup.js | jest.setup.js ]]. Revisit the tradeoffs of [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/MobileFrontend/+/adcf77a/package.json#8 | mw-node-qunit ]]'s explicit dependencies vs convenience in the context of a shared library?
- Consider [[ https://jestjs.io/docs/en/snapshot-testing | snapshot testing ]] (e.g., check out [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/ContentTranslation/+/ecf6e04/app/tests/unit/components/MWThumbnail.test.js#10 | the thumbnail component test in ContentTranslation ]]).
== Acceptance criteria
- [] Jest is added a development dependency.
- [] An NPM script is added that runs all Jest unit tests.
- [] A test for one component is written. For example, [[ https://github.com/egardner/mediawiki-extensions-MachineVision/blob/master/tests/jest/App.test.js | App ]].
- [] The [[ https://www.mediawiki.org/wiki/Vue.js#Testing | configuration documentation on wiki ]] is updated.
- [] Globals and MediaWiki environment specific variables are minimized.
- [] A failing test fails CI.
== QA
No functional changes so no QA needed.