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-changed-files
Advanced tools
A module used internally by Jest to check which files have changed since you last committed in git or hg.
The jest-changed-files npm package is a utility that allows you to determine which files have changed in a git or hg (Mercurial) repository. It is often used in testing environments, particularly with Jest, to identify which tests need to be run based on the changes made to the codebase.
Getting changed files from a Git repository
This feature allows you to get a list of files that have changed since the last commit in a Git repository. The 'lastCommit' option specifies that only changes from the last commit should be considered.
const { getChangedFilesForRoots } = require('jest-changed-files');
(async () => {
const changedFiles = await getChangedFilesForRoots(['./'], { lastCommit: true });
console.log(changedFiles.changedFiles);
})();
Getting changed files from a Mercurial repository
This feature is similar to the previous one but is used for Mercurial repositories. The 'withAncestor' option can be used to find changes that have occurred since the last common ancestor of the current head and the default branch.
const { getChangedFilesForRoots } = require('jest-changed-files');
(async () => {
const changedFiles = await getChangedFilesForRoots(['./'], { withAncestor: true });
console.log(changedFiles.changedFiles);
})();
The git-diff-apply package provides functionality to apply the changes between two commits, branches, or tags. It is similar to jest-changed-files in that it deals with changes in a repository, but it focuses on applying changes rather than just listing them.
node-diff3 is a package for three-way file merging. It compares the differences between files, which can be related to the functionality of jest-changed-files, but it goes further by attempting to merge these differences automatically.
simple-git is a light-weight interface for running git commands in any node.js application. It can be used to get a list of changed files, similar to jest-changed-files, but it also provides a full range of commands to manage Git repositories programmatically.
A module used internally by Jest to check which files have changed since you last committed in git or hg.
$ npm install --save jest-changed-files
getChangedFilesForRoots(roots: <Array<string>>, options: ?object): Promise<?object>
Get the list of files and repos that have changed since the last commit.
roots: Array of string paths gathered from jest roots.
options: Object literal with keys
Get a set of git and hg repositories.
roots: Array of string paths gathered from jest roots.
import {getChangedFilesForRoots} from 'jest-changed-files';
getChangedFilesForRoots(['/path/to/test'], {
lastCommit: true,
withAncestor: true,
}).then((files) => {
/*
{
repos: [],
changedFiles: []
}
*/
});
import {findRepos} from 'jest-changed-files';
findRepos(['/path/to/test']).then((repos) => {
/*
{
git: Set<Path>,
hg: Set<Path>
}
*/
});
jest 21.0.0
Add --changedFilesWithAncestor (#4070)
Add --findRelatedFiles (#4131)
Add --onlyChanged tests (#3977)
Add contextLines
option to jest-diff (#4152)
Add alternative serialize API for pretty-format plugins (#4114)
Add displayName to MPR (#4327)
Add displayName to TestResult (#4408)
Add es5 build of pretty-format (#4075)
Add extra info to no tests for changed files message (#4188)
Add fake chalk in browser builds in order to support IE10 (#4367)
Add jest.requireActual (#4260)
Add maxWorkers to globalConfig (#4005)
Add skipped tests support for jest-editor-support (#4346)
Add source map support for better debugging experience (#3738)
Add support for Error objects in toMatchObject (#4339)
Add support for Immutable.Record in pretty-format (#3678)
Add tests for extract_requires on export types (#4080)
Add that toMatchObject can match arrays (#3994)
Add watchPathIgnorePatterns to exclude paths to trigger test re-run in watch mode (#4331)
Adding ancestorTitles property to JSON test output (#4293)
Allow custom resolver to be used with[out] moduleNameMapper (#4174)
Avoid parsing .require(…)
method calls (#3777)
Avoid unnecessary function declarations and call in pretty-format (#3962)
Avoid writing to stdout in default reporter if --json is enabled. Fixes #3941 (#3945)
Better error handling for --config (#4230)
Call consistent pretty-format plugins within Jest (#3800)
Change babel-core to peerDependency for compatibility with Babel 7 (#4162)
Change Promise detection code in jest-circus to support non-global Promise implementations (#4375)
Changed files eager loading (#3979)
Check whether we should output to stdout or stderr (#3953)
Clarify what objects toContain and toContainEqual can be used on (#4307)
Clean up resolve() logic. Provide useful names for variables and functions. Test that a directory exists before attempting to resolve files within it. (#4325)
cleanupStackTrace (#3696)
compare objects with Symbol keys (#3437)
Complain if expect is passed multiple arguments (#4237)
Completes nodeCrawl with empty roots (#3776)
Consistent naming of files (#3798)
Convert code base to ESM import (#3778)
Correct summary message for flag --findRelatedTests. (#4309)
Coverage thresholds can be set up for individual files (#4185)
custom reporter error handling (#4051)
Define separate type for pretty-format plugin Options (#3802)
Delete confusing async keyword (#3679)
Delete redundant branch in ReactElement and HTMLElement plugins (#3731)
Don't format node assert errors when there's no 'assert' module (#4376)
Don't print test summary in --silent (#4106)
Don't try to build ghost packages (#3934)
Escape double quotes in attribute values in HTMLElement plugin (#3797)
Explain how to clear the cache (#4232)
Factor out common code for collections in pretty-format (#4184)
Factor out common code for markup in React plugins (#4171)
Feature/internal resolve (#4315)
Fix --logHeapUsage (#4176)
Fix --showConfig to show all project configs (#4078)
Fix --watchAll (#4254)
Fix bug when setTimeout is mocked (#3769)
Fix changedFilesWithAncestor (#4193)
Fix colors for expected/stored snapshot message (#3702)
Fix concurrent test failure (#4159)
Fix for 4286: Compare Maps and Sets by value rather than order (#4303)
fix forceExit (#4105)
Fix grammar in React Native docs (#3838)
Fix inconsistent name of complex values in pretty-format (#4001)
Fix issue mocking bound method (#3805)
Fix jest-circus (#4290)
Fix lint warning in main
(#4132)
Fix linting (#3946)
fix merge conflict (#4144)
Fix minor typo (#3729)
fix missing console.log messages (#3895)
fix mock return value (#3933)
Fix mocking for modules with folders on windows (#4238)
Fix NODE_PATH resolving for relative paths (#3616)
Fix options.moduleNameMapper override order with preset (#3565 (#3689)
Fix React PropTypes warning in tests for Immutable plugin (#4412)
Fix regression in mockReturnValueOnce (#3857)
Fix sample code of mock class constructors (#4115)
Fix setup-test-framework-test (#3773)
fix typescript jest test crash (#4363)
Fix watch mode (#4084)
Fix Watchman on windows (#4018)
Fix(babel): Handle ignored files in babel v7 (#4393)
Fix(babel): Support upcoming beta (#4403)
Fixed object matcher (#3799)
Fixes #3820 use extractExpectedAssertionsErrors in jasmine setup
Flow upgrade (#4355)
Force message in matchers to always be a function (#3972)
Format describe
and use test
instead of it
alias (#3792)
global_config.js for multi-project runner (#4023)
Handle async errors (#4016)
Hard-fail if hasteImpl is throwing an error during initialization. (#3812)
Ignore import type for extract_requires (#4079)
Ignore indentation of data structures in jest-diff (#3429)
Implement 'jest.requireMock' (#4292)
Improve Jest phabricator plugin (#4195)
Improve Seq and remove newline from non-min empty in Immutable plugin (#4241)
Improved the jest reporter with snapshot info per test. (#3660)
Include fullName in formattedAssertion (#4273)
Integrated with Yarn workspaces (#3906)
jest --all (#4020)
jest-circus test failures (#3770)
jest-circus Timeouts (#3760)
jest-haste-map: add test case for broken handling of ignore pattern (#4047)
jest-haste-map: add test+fix for broken platform module support (#3885)
jest-haste-map: deprecate functional ignorePattern and use it in cache key (#4063)
jest-haste-map: mock 'fs' with more idiomatic jest.mock() (#4046)
jest-haste-map: only file IO errors should be silently ignored (#3816)
jest-haste-map: throw when trying to get a duplicated module (#3976)
jest-haste-map: watchman crawler: normalize paths (#3887)
jest-runtime: atomic cache write, and check validity of data (#4088)
Join lines with newline in jest-diff (#4314)
Keep ARGV only in CLI files (#4012)
let transformers adjust cache key based on mapCoverage (#4187)
Lift requires (#3780)
Log stack when reporting errors in jest-runtime (#3833)
Make --listTests return a new line separated list when not using --json (#4229)
Make build script printing small-terminals-friendly (#3892)
Make error messages more explicit for toBeCalledWith assertions (#3913)
Make jest-matcher-utils use ESM exports (#4342)
Make jest-runner a standalone package. (#4236)
Make Jest’s Test Runner configurable. (#4240)
Make listTests always print to console.log (#4391)
Make providesModuleNodeModules ignore nested node_modules directories
Make sure function mocks match original arity (#4170)
Make sure runAllTimers also clears all ticks (#3915)
Make toBe matcher error message more helpful for objects and arrays (#4277)
Make useRealTimers play well with timers: fake (#3858)
Move getType from jest-matcher-utils to separate package (#3559)
Multiroot jest-change-files (#3969)
Output created snapshot when using --ci option (#3693)
Point out you can use matchers in .toMatchObject (#3796)
Prevent babelrc package import failure on relative current path (#3723)
Print RDP details for windows builds (#4017)
Provide better error checking for transformed content (#3807)
Provide printText and printComment in markup.js for HTMLElement plugin (#4344)
Provide regex visualization for testRegex (#3758)
Refactor CLI (#3862)
Refactor names and delimiters of complex values in pretty-format (#3986)
Replace concat(Immutable) with Immutable as item of plugins array (#4207)
Replace Jasmine with jest-circus (#3668)
Replace match with test and omit redundant String conversion (#4311)
Replace print with serialize in AsymmetricMatcher plugin (#4173)
Replace print with serialize in ConvertAnsi plugin (#4225)
Replace print with serialize in HTMLElement plugin (#4215)
Replace print with serialize in Immutable plugins (#4189)
Replace unchanging args with one config arg within pretty-format (#4076)
Return UNDEFINED for undefined type in ReactElement plugin (#4360)
Rewrite some read bumps in pretty-format (#4093)
Run update method before installing JRE on Circle (#4318)
Separated the snapshot summary creation from the printing to improve testability. (#4373)
Set coverageDirectory during normalize phase (#3966)
Setup custom reporters after default reporters (#4053)
Setup for Circle 2 (#4149)
Simplify readme (#3790)
Simplify snapshots definition (#3791)
skipNodeResolution config option (#3987)
Small fixes to toHaveProperty docs (#3878)
Sort attributes by name in HTMLElement plugin (#3783)
Specify watchPathIgnorePatterns will only be available in Jest 21+ (#4398)
Split TestRunner off of TestScheduler (#4233)
Strict and explicit config resolution logic (#4122)
Support maxDepth option in React plugins (#4208)
Support SVG elements in HTMLElement plugin (#4335)
Test empty Immutable collections with {min: false} option (#4121)
test to debug travis failure in main (#4145)
testPathPattern message test (#4006)
Throw Error When Using Nested It Specs (#4039)
Throw when moduleNameMapper points to inexistent module (#3567)
Unified 'no tests found' message for non-verbose MPR (#4354)
Update migration guide with jest-codemods transformers (#4306)
Use "inputSourceMap" for coverage re-mapping. (#4009)
Use "verbose" no test found message when there is only one project (#4378)
Use babel transform to inline all requires (#4340)
Use eslint plugins to run prettier (#3971)
Use iterableEquality in spy matchers (#3651)
Use modern HTML5 <!DOCTYPE> (#3937)
Wrap Error.captureStackTrace
in a try (#4035)
FAQs
A module used internally by Jest to check which files have changed since you last committed in git or hg.
The npm package jest-changed-files receives a total of 18,370,181 weekly downloads. As such, jest-changed-files popularity was classified as popular.
We found that jest-changed-files demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 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.