Product
Introducing SSO
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
jest-changed-files
Advanced tools
Package description
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.
Changelog
29.5.0
[jest-changed-files]
Support Sapling (#13941)[jest-circus, @jest/cli, jest-config]
Add feature to randomize order of tests via CLI flag or through the config file(#12922)[jest-cli, jest-config, @jest/core, jest-haste-map, @jest/reporters, jest-runner, jest-runtime, @jest/types]
Add workerThreads
configuration option to allow using worker threads for parallelization (#13939)[jest-cli]
Export yargsOptions
(#13970)[jest-config]
Add openHandlesTimeout
option to configure possible open handles warning. (#13875)[@jest/create-cache-key-function]
Allow passing length
argument to createCacheKey()
function and set its default value to 16
on Windows (#13827)[jest-message-util]
Add support for AggregateError (#13946 & #13947)[jest-message-util]
Add support for Error causes in test
and it
(#13935 & #13966)[jest-reporters]
Add summaryThreshold
option to summary reporter to allow overriding the internal threshold that is used to print the summary of all failed tests when the number of test suites surpasses it (#13895)[jest-runtime]
Expose @sinonjs/fake-timers
async APIs functions advanceTimersByTimeAsync(msToRun)
(tickAsync(msToRun)
), advanceTimersToNextTimerAsync(steps)
(nextAsync
), runAllTimersAsync
(runAllAsync
), and runOnlyPendingTimersAsync
(runToLastAsync
) (#13981)[jest-runtime, @jest/transform]
Allow V8 coverage provider to collect coverage from files which were not loaded explicitly (#13974)[jest-snapshot]
Add support to cts
and mts
TypeScript files to inline snapshots (#13975)[jest-worker]
Add start
method to worker farms (#13937)[jest-worker]
Support passing a URL as path to worker (#13982)[babel-plugin-jest-hoist]
Fix unwanted hoisting of nested jest
usages (#13952)[jest-circus]
Send test case results for todo
tests (#13915)[jest-circus]
Update message printed on test timeout (#13830)[jest-circus]
Avoid creating the word "testfalse" when takesDoneCallback
is false
in the message printed on test timeout AND updated timeouts test (#13954)[jest-environment-jsdom]
Stop setting document
to null
on teardown (#13972)[@jest/expect-utils]
Update toStrictEqual()
to be able to check jest.fn().mock.calls
(#13960)[@jest/test-result]
Allow TestResultsProcessor
type to return a Promise (#13950)[jest-snapshot]
Remove dependency on jest-haste-map
(#13977)Readme
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: Options): Promise<ChangedFiles>
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
A Promise of Object literal with keys
Get a set of git and hg repositories.
roots: Array of string paths gathered from jest roots.
A Promise of Object literal with keys
import {getChangedFilesForRoots} from 'jest-changed-files';
getChangedFilesForRoots(['/path/to/test'], {
lastCommit: true,
withAncestor: true,
}).then(files => {
/*
{
repos: [],
changedFiles: []
}
*/
});
import {getChangedFilesForRoots} from 'jest-changed-files';
getChangedFilesForRoots(['/path/to/test'], {
changedSince: 'main',
}).then(files => {
/*
{
repos: [],
changedFiles: []
}
*/
});
import {findRepos} from 'jest-changed-files';
findRepos(['/path/to/test']).then(repos => {
/*
{
git: Set<Path>,
hg: Set<Path>
}
*/
});
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,011,882 weekly downloads. As such, jest-changed-files popularity was classified as popular.
We found that jest-changed-files demonstrated a healthy version release cadence and project activity because the last version was released less than 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.
Product
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.