Security News
ESLint is Now Language-Agnostic: Linting JSON, Markdown, and Beyond
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
jest-watcher
Advanced tools
The jest-watcher package is a part of the Jest ecosystem and is used to implement custom watch plugins for Jest. It provides an API to create plugins that can hook into Jest's watch mode, allowing developers to add custom watch behaviors to their test suites.
Custom Watch Plugins
This feature allows developers to create custom watch plugins that can react to file changes, determine if a test suite should run, and more. The code sample shows a basic structure of a custom watch plugin.
class MyCustomPlugin {
apply(jestHooks) {
jestHooks.onFileChange(({ projects }) => {
console.log('Files changed:', projects[0].changedFiles);
});
jestHooks.shouldRunTestSuite(() => true);
}
}
module.exports = MyCustomPlugin;
Interactive Watch Plugins
This feature allows the creation of interactive watch plugins that can provide custom interactive CLI interfaces during Jest's watch mode. The code sample demonstrates how to implement an interactive behavior that filters tests based on a pattern.
class MyInteractivePlugin {
run(globalConfig, updateConfigAndRun) {
// Implement interactive behavior here
updateConfigAndRun({
testNamePattern: 'pattern to filter tests'
});
return Promise.resolve();
}
}
module.exports = MyInteractivePlugin;
Mocha-watch is a watch mode for Mocha testing framework. It provides similar functionality to jest-watcher by re-running tests when file changes are detected. However, it is tailored for Mocha and does not offer the same plugin API for extending watch behavior.
Karma is a test runner that works with multiple testing frameworks like Jasmine, Mocha, and QUnit. It can watch files and re-run tests on changes, similar to jest-watcher. Karma is more of a full-fledged test runner with a focus on running tests in different browsers, whereas jest-watcher is specifically for creating watch plugins in Jest.
AVA is a test runner with built-in watch mode functionality. It automatically re-runs tests when it detects changes. AVA's watch mode is not plugin-based like jest-watcher, but it offers a simple and fast out-of-the-box solution for watching tests without the need for additional configuration.
25.1.0
[babel-plugin-jest-hoist]
Show codeframe on static hoisting issues (#8865)[babel-plugin-jest-hoist]
Add BigInt
to ALLOWED_IDENTIFIERS
(#8382)[babel-preset-jest]
Add @babel/plugin-syntax-bigint
(#8382)[expect]
Add BigInt
support to toBeGreaterThan
, toBeGreaterThanOrEqual
, toBeLessThan
and toBeLessThanOrEqual
(#8382)[expect, jest-matcher-utils]
Display change counts in annotation lines (#9035)[expect, jest-snapshot]
Support custom inline snapshot matchers (#9278)[jest-config]
Throw the full error message and stack when a Jest preset is missing a dependency (#8924)[jest-config]
[BREAKING] Set default display name color based on runner (#8689)[jest-config]
Merge preset globals with project globals (#9027)[jest-config]
Support .cjs
config files (#9291)[jest-config]
[BREAKING] Support .mjs
config files (#9431)[jest-core]
Support reporters as default exports (#9161)[jest-core]
Support --findRelatedTests
paths case insensitivity on Windows (#8961)[jest-diff]
Add options for colors and symbols (#8841)[jest-diff]
[BREAKING] Export as ECMAScript module (#8873)[jest-diff]
Add includeChangeCounts
and rename Indicator
options (#8881)[jest-diff]
Add changeColor
and patchColor
options (#8911)[jest-diff]
Add trailingSpaceFormatter
option and replace cyan with commonColor
(#8927)[jest-diff]
Add firstOrLastEmptyLineReplacement
option and export 3 diffLines
functions (#8955)[jest-environment]
Add optional getVmContext
next to runScript
(#9252 & #9428)[jest-environment-jsdom]
Add fakeTimersLolex
(#8925)[jest-environment-node]
Add fakeTimersLolex
(#8925)[jest-environment-node]
Add queueMicrotask
(#9140)[jest-environment-node]
Implement getVmContext
(#9252 & #9428)[@jest/fake-timers]
Add Lolex as implementation of fake timers (#8897)[jest-get-type]
Add BigInt
support. (#8382)[jest-matcher-utils]
Add BigInt
support to ensureNumbers
ensureActualIsNumber
, ensureExpectedIsNumber
(#8382)[jest-matcher-utils]
Ignore highlighting matched asymmetricMatcher in diffs (#9257)[jest-reporters]
Export utils for path formatting (#9162)[jest-reporters]
Provides global coverage thresholds as watermarks for istanbul (#9416)[jest-runner]
Warn if a worker had to be force exited (#8206)[jest-runtime]
[BREAKING] Do not export ScriptTransformer
- it can be imported from @jest/transform
instead (#9256)[jest-runtime]
Use JestEnvironment.getVmContext
and vm.compileFunction
if available to avoid the module wrapper (#9252 & #9428)[jest-snapshot]
Display change counts in annotation lines (#8982)[jest-snapshot]
[BREAKING] Improve report when the matcher has properties (#9104)[jest-snapshot]
Improve colors when snapshots are updatable (#9132)[jest-snapshot]
Ignore indentation for most serialized objects (#9203)[jest-transform]
Create createTranspilingRequire
function for easy transpiling modules (#9194)[jest-transform]
[BREAKING] Return transformed code as a string, do not wrap in vm.Script
(#9253)[@jest/test-result]
Create method to create empty TestResult
(#8867)[jest-worker]
[BREAKING] Return a promise from end()
, resolving with the information whether workers exited gracefully (#8206)[jest-reporters]
Transform file paths into hyperlinks (#8980)[expect]
Display expectedDiff
more carefully in toBeCloseTo
(#8389)[expect]
Avoid incorrect difference for subset when toMatchObject
fails (#9005)[expect]
Consider all RegExp flags for equality (#9167)[expect]
[BREAKING] Consider primitives different from wrappers instantiated with new
(#9167)[expect]
Prevent maintaining RegExp state between multiple tests (#9289)[expect]
Fix subsetEquality false circular reference detection (#9322)[jest-config]
Use half of the available cores when watchAll
mode is enabled (#9117)[jest-config]
Fix Jest multi project runner still cannot handle exactly one project (#8894)[jest-console]
Add missing console.group
calls to NullConsole
(#9024)[jest-core]
Don't include unref'd timers in --detectOpenHandles results (#8941)[jest-core]
Limit number of workers when creating haste maps in projects (#9259)[jest-diff]
Do not inverse format if line consists of one change (#8903)[jest-diff]
Rename some new options and change their default values (#9077)[jest-environment-node]
Fix TextEncoder.encode
not referencing same global Uint8Array
constructor (#9261)[jest-fake-timers]
getTimerCount
will not include cancelled immediates (#8764)[jest-fake-timers]
Support util.promisify
on setTimeout
(#9180)[jest-jasmine2, jest-circus]
Improve error message format for Node's assert.fail (#9262)[jest-leak-detector]
[BREAKING] Use weak-napi
instead of weak
package (#8686)[jest-mock]
Fix for mockReturnValue overriding mockImplementationOnce (#8398)[jest-reporters]
Make node-notifier an optional dependency (#8918)[jest-reporters]
Make all arguments to methods on BaseReporter
optional (#9159)[jest-resolve]
: Set MODULE_NOT_FOUND as error code when module is not resolved from paths (#8487)[jest-resolve-dependencies]
Handle dynamic dependencies correctly even when using module maps (#9303)[jest-snapshot]
Remove only the added newlines in multiline snapshots (#8859)[jest-snapshot]
Distinguish empty string from external snapshot not written (#8880)[jest-snapshot]
[BREAKING] Distinguish empty string from internal snapshot not written (#8898)[jest-snapshot]
[BREAKING] Remove report
method and throw matcher errors (#9049)[jest-snapshot]
Omit irrelevant received
properties when property matchers fail (#9198)[jest-transform]
Properly cache transformed files across tests (#8890)[jest-transform]
Don't fail the test suite when a generated source map is invalid (#9058)[jest-types]
[BREAKING] Use less null | undefined
in config types (#9200)[jest-util]
Allow querying process.domain (#9136)[pretty-format]
Correctly detect memoized elements (#9196)[pretty-format]
Fix pretty-format to respect displayName on forwardRef (#9422)[*]
[BREAKING] Drop support for Node 6 (#8455)[*]
Add Node 12 to CI (#8411)[*]
[BREAKING] Upgrade to Micromatch v4 (#8852)[babel-plugin-jest-hoist]
[BREAKING] Use ESM exports (#8874)[docs]
Add alias and optional boolean value to coverage
CLI Reference (#8996)[docs]
Fix broken link pointing to legacy JS file in "Snapshot Testing".[docs]
Add setupFilesAfterEnv
and jest.setTimeout
example (#8971)[expect]
Test that toStrictEqual
is equivalent to Node's assert.deepStrictEqual
(#9167)[jest]
[BREAKING] Use ESM exports (#8874)[jest-cli]
[BREAKING] Use ESM exports (#8874)[jest-cli]
[BREAKING] Remove re-exports from @jest/core
(#8874)[jest-diff]
Remove the need to export splitLines0
function (#9151)[jest-environment-jsdom]
[BREAKING] Upgrade JSDOM from v11 to v15 (#8851)[jest-haste-map]
Upgrade to fsevents@2
(#9215)[jest-reporters]
[BREAKING] Upgrade Istanbul dependencies, which are used for code coverage (#9192)[jest-util]
[BREAKING] Remove deprecated exports (#8863)[jest-validate]
[BREAKING] Use ESM exports (#8874)[jest-types]
Mark InitialOptions
as Partial
(#8848)[jest-config]
Refactor normalize
to be more type safe (#8848)FAQs
Delightful JavaScript Testing.
The npm package jest-watcher receives a total of 25,366,237 weekly downloads. As such, jest-watcher popularity was classified as popular.
We found that jest-watcher demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
Security News
Members Hub is conducting large-scale campaigns to artificially boost Discord server metrics, undermining community trust and platform integrity.
Security News
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.