Security News
NIST Misses 2024 Deadline to Clear NVD Backlog
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.
babel-jest
Advanced tools
The babel-jest package is a Jest plugin that makes it easy to use Babel to transform your JavaScript tests. It automatically hooks Babel into Jest and compiles files before running them, allowing you to use the latest JavaScript features and syntax in your test files.
Transforming test files with Babel
This configuration in Jest's setup file tells Jest to use babel-jest for transforming any files that match the regex pattern (in this case, any JavaScript files) before running the tests.
module.exports = {
transform: {
'^.+\\.js$': 'babel-jest'
}
};
Using modern JavaScript syntax in tests
With babel-jest, you can write tests using modern JavaScript features like async/await without worrying about compatibility issues.
test('async/await works', async () => {
const data = await fetchData();
expect(data).toBe('expected data');
});
Custom Babel configuration
babel-jest allows you to specify a custom Babel configuration to tailor the transformation process to your project's needs.
{
'presets': [['@babel/preset-env', { 'targets': { 'node': 'current' } }]],
'plugins': ['@babel/plugin-proposal-class-properties']
}
ts-jest is a TypeScript preprocessor with source map support for Jest. It allows you to use Jest to test projects written in TypeScript. It is similar to babel-jest but specifically tailored for TypeScript rather than general Babel transformations.
jest-transform-stub is a package that allows you to stub out resources, like images or styles, during testing with Jest. It is similar to babel-jest in that it transforms assets, but it focuses on non-JavaScript assets instead of JavaScript code.
jest-vue-preprocessor is a preprocessor for Jest to handle .vue files, allowing you to test Vue components. It is similar to babel-jest in the sense that it preprocesses files for testing, but it is specifically designed for Vue components.
If you are already using jest-cli
, add babel-jest
and it will automatically compile JavaScript code using Babel.
yarn add --dev babel-jest @babel/core
If you would like to write your own preprocessor, uninstall and delete babel-jest and set the config.transform option to your preprocessor.
Note: this step is only required if you are using babel-jest
with additional code preprocessors.
To explicitly define babel-jest
as a transformer for your JavaScript code, map .js files to the babel-jest
module. Typescript files are also supported.
"transform": {
"\\.[jt]sx?$": "babel-jest"
},
28.0.0
[babel-jest]
Export createTransformer
function (#12399)[expect]
Expose AsymmetricMatchers
, MatcherFunction
and MatcherFunctionWithState
interfaces (#12363, #12376)[jest-circus]
Support error logging before retry (#12201)[jest-circus, jest-jasmine2]
Allowed classes and functions as describe
and it
/test
names (#12484)[jest-cli, jest-config]
[BREAKING] Remove testURL
config, use testEnvironmentOptions.url
instead (#10797)[jest-cli, jest-core]
Add --shard
parameter for distributed parallel test execution (#12546)[jest-cli]
[BREAKING] Remove undocumented --timers
option (#12572)[jest-config]
[BREAKING] Stop shipping jest-environment-jsdom
by default (#12354)[jest-config]
[BREAKING] Stop shipping jest-jasmine2
by default (#12355)[jest-config, @jest/types]
Add ci
to GlobalConfig
(#12378)[jest-config]
[BREAKING] Rename moduleLoader
to runtime
(#10817)[jest-config]
[BREAKING] Rename extraGlobals
to sandboxInjectedGlobals
(#10817)[jest-config]
[BREAKING] Throw an error instead of showing a warning if multiple configs are used (#12510)[jest-config]
[BREAKING] Do not normalize long deprecated configuration options preprocessorIgnorePatterns
, scriptPreprocessor
, setupTestFrameworkScriptFile
and testPathDirs
(#12701)[jest-cli, jest-core]
Add --ignoreProjects
CLI argument to ignore test suites by project name (#12620)[jest-core]
Pass project config to globalSetup
/globalTeardown
function as second argument (#12440)[jest-core]
Stabilize test runners with event emitters (#12641)[jest-core, jest-watcher]
[BREAKING] Move TestWatcher
class to jest-watcher
package (#12652)[jest-core]
Allow using Summary Reporter as stand-alone reporter (#12687)[jest-environment-jsdom]
[BREAKING] Upgrade jsdom to 19.0.0 (#12290)[jest-environment-jsdom]
[BREAKING] Add default browser
condition to exportConditions
for jsdom
environment (#11924)[jest-environment-jsdom]
[BREAKING] Pass global config to Jest environment constructor for jsdom
environment (#12461)[jest-environment-jsdom]
[BREAKING] Second argument context
to constructor is mandatory (#12469)[jest-environment-node]
[BREAKING] Add default node
and node-addon
conditions to exportConditions
for node
environment (#11924)[jest-environment-node]
[BREAKING] Pass global config to Jest environment constructor for node
environment (#12461)[jest-environment-node]
[BREAKING] Second argument context
to constructor is mandatory (#12469)[jest-environment-node]
Add all available globals to test globals, not just explicit ones (#12642, #12696)[@jest/expect]
New module which extends expect
with jest-snapshot
matchers (#12404, #12410, #12418)[@jest/expect-utils]
New module exporting utils for expect
(#12323)[@jest/fake-timers]
[BREAKING] Rename timers
configuration option to fakeTimers
(#12572)[@jest/fake-timers]
[BREAKING] Allow jest.useFakeTimers()
and projectConfig.fakeTimers
to take an options bag (#12572)[jest-haste-map]
[BREAKING] HasteMap.create
now returns a promise (#12008)[jest-haste-map]
Add support for dependencyExtractor
written in ESM (#12008)[jest-mock]
[BREAKING] Rename exported utility types ClassLike
, FunctionLike
, ConstructorLikeKeys
, MethodLikeKeys
, PropertyLikeKeys
; remove exports of utility types ArgumentsOf
, ArgsType
, ConstructorArgumentsOf
- TS builtin utility types ConstructorParameters
and Parameters
should be used instead (#12435, #12489)[jest-mock]
Improve isMockFunction
to infer types of passed function (#12442)[jest-mock]
[BREAKING] Improve the usage of jest.fn
generic type argument (#12489)[jest-mock]
Add support for auto-mocking async generator functions (#11080)[jest-mock]
Add contexts
member to mock functions (#12601)[@jest/reporters]
Add GitHub Actions reporter (#11320, #12658)[@jest/reporters]
Pass reporterContext
to custom reporter constructors as third argument (#12657)[jest-resolve]
[BREAKING] Add support for package.json
exports
(#11961, #12373)[jest-resolve]
Support package self-reference (#12682)[jest-resolve, jest-runtime]
Add support for data:
URI import and mock (#12392)[jest-resolve, jest-runtime]
Add support for async resolver (#11540)[jest-resolve]
[BREAKING] Remove browser?: boolean
from resolver options, conditions: ['browser']
should be used instead (#12707)[jest-resolve]
Expose JestResolver
, AsyncResolver
, SyncResolver
, PackageFilter
, PathFilter
and PackageJSON
types (#12707, (#12712)[jest-runner]
Allow setupFiles
module to export an async function (#12042)[jest-runner]
Allow passing testEnvironmentOptions
via docblocks (#12470)[jest-runner]
Expose CallbackTestRunner
, EmittingTestRunner
abstract classes and CallbackTestRunnerInterface
, EmittingTestRunnerInterface
to help typing third party runners (#12646, #12715)[jest-runner]
Lock version of source-map-support
to 0.5.13 (#12720)[jest-runtime]
[BREAKING] Runtime.createHasteMap
now returns a promise (#12008)[jest-runtime]
Calling jest.resetModules
function will clear FS and transform cache (#12531)[jest-runtime]
[BREAKING] Remove Context
type export, it must be imported from @jest/test-result
(#12685)[jest-runtime]
Add import.meta.jest
(#12698)[@jest/schemas]
New module for JSON schemas for Jest's config (#12384)[@jest/source-map]
Migrate from source-map
to @jridgewell/trace-mapping
(#12692)[jest-transform]
[BREAKING] Make it required for process()
and processAsync()
methods to always return structured data (#12638)[jest-test-result]
Add duration property to JSON test output (#12518)[jest-watcher]
[BREAKING] Make PatternPrompt
class to take entityName
as third constructor parameter instead of this._entityName
(#12591)[jest-worker]
[BREAKING] Allow only absolute workerPath
(#12343)[jest-worker]
[BREAKING] Default to advanced serialization when using child process workers (#10983)[pretty-format]
New maxWidth
parameter (#12402)[*]
Use sha256
instead of md5
as hashing algorithm for compatibility with FIPS systems (#12722)[babel-jest]
[BREAKING] Pass rootDir
as root
in Babel's options (#12689)[expect]
Move typings of .not
, .rejects
and .resolves
modifiers outside of Matchers
interface (#12346)[expect]
Throw useful error if expect.extend
is called with invalid matchers (#12488)[expect]
Fix iterableEquality
ignores other properties (#8359)[expect]
Fix print for the closeTo
matcher (#12626)[jest-changed-files]
Improve changedFilesWithAncestor
pattern for Mercurial SCM (#12322)[jest-circus, @jest/types]
Disallow undefined value in TestContext
type (#12507)[jest-config]
Correctly detect CI environment and update snapshots accordingly (#12378)[jest-config]
Pass moduleTypes
to ts-node
to enforce CJS when transpiling (#12397)[jest-config]
[BREAKING] Add mjs
and cjs
to default moduleFileExtensions
config (#12578)[jest-config, jest-haste-map]
Allow searching for tests in node_modules
by exposing retainAllFiles
(#11084)[jest-core]
[BREAKING] Exit with status 1
if no tests are found with --findRelatedTests
flag (#12487)[jest-core]
Do not report unref-ed subprocesses as open handles (#12705)[jest-each]
%#
is not replaced with index of the test case (#12517)[jest-each]
Fixes error message with incorrect count of missing arguments (#12464)[jest-environment-jsdom]
Make jsdom
accessible to extending environments again (#12232)[jest-environment-jsdom]
Log JSDOM errors more cleanly (#12386)[jest-environment-node]
Add MessageChannel
, MessageEvent
to globals (#12553)[jest-environment-node]
Add structuredClone
to globals (#12631)[@jest/expect-utils]
[BREAKING] Fix false positives when looking for undefined
prop (#8923)[jest-haste-map]
Don't use partial results if file crawl errors (#12420)[jest-haste-map]
Make watchman existence check lazy+async (#12675)[jest-jasmine2, jest-types]
[BREAKING] Move all jasmine
specific types from @jest/types
to its own package (#12125)[jest-jasmine2]
Do not set duration
to 0
for skipped tests (#12518)[jest-matcher-utils]
Pass maxWidth to pretty-format
to avoid printing every element in arrays by default (#12402)[jest-mock]
Fix function overloads for spyOn
to allow more correct type inference in complex object (#12442)[jest-mock]
Handle overridden Function.name
property (#12674)[@jest/reporters]
Notifications generated by the --notify
flag are no longer persistent in GNOME Shell. (#11733)[@jest/reporters]
Move missing icon file which is needed for NotifyReporter
class. (#12593)[@jest/reporters]
Update v8-to-istanbul
(#12697)[jest-resolver]
Call custom resolver with core node.js modules (#12654)[jest-runner]
Correctly resolve source-map-support
(#12706)[jest-worker]
Fix Farm
execution results memory leak (#12497)[*]
[BREAKING] Drop support for Node v10 and v15 and target first LTS 16.13.0
(#12220)[*]
[BREAKING] Drop support for typescript@3.8
, minimum version is now 4.3
(#11142, #12648)[*]
Bundle all .d.ts
files into a single index.d.ts
per module (#12345)[*]
Use globalThis
instead of global
(#12447)[babel-jest]
[BREAKING] Only export createTransformer
(#12407)[docs]
Add note about not mixing done()
with Promises (#11077)[docs, examples]
Update React examples to match with the new React guidelines for code examples (#12217)[docs]
Add clarity for module factory hoisting limitations (#12453)[docs]
Add more information about how code transformers work (#12407)[docs]
Add upgrading guide (#12633)[expect]
[BREAKING] Remove support for importing build/utils
(#12323)[expect]
[BREAKING] Migrate to ESM (#12344)[expect]
[BREAKING] Snapshot matcher types are moved to @jest/expect
(#12404)[jest-cli]
Update yargs
to v17 (#12357)[jest-config]
[BREAKING] Remove getTestEnvironment
export (#12353)[jest-config]
[BREAKING] Rename config option name
to id
(#11981)[jest-create-cache-key-function]
Added README.md file with basic usage instructions (#12492)[@jest/core]
Use index.ts
instead of jest.ts
as main export (#12329)[jest-environment-jsdom]
[BREAKING] Migrate to ESM (#12340)[jest-environment-node]
[BREAKING] Migrate to ESM (#12340)[jest-haste-map]
Remove legacy isRegExpSupported
(#12676)[@jest/fake-timers]
Update @sinonjs/fake_timers
to v9 (#12357)[jest-jasmine2, jest-runtime]
[BREAKING] Use Symbol
to pass jest.setTimeout
value instead of jasmine
specific logic (#12124)[jest-phabricator]
[BREAKING] Migrate to ESM (#12341)[jest-resolve]
[BREAKING] Make requireResolveFunction
argument mandatory (#12353)[jest-runner]
[BREAKING] Remove some type exports from @jest/test-result
(#12353)[jest-runner]
[BREAKING] Second argument to constructor (Context
) is not optional (#12640)[jest-serializer]
[BREAKING] Deprecate package in favour of using v8
APIs directly (#12391)[jest-snapshot]
[BREAKING] Migrate to ESM (#12342)[jest-transform]
Update write-file-atomic
to v4 (#12357)[jest-types]
[BREAKING] Remove Config.Glob
and Config.Path
(#12406)[jest]
Use index.ts
instead of jest.ts
as main export (#12329)[jest-haste-map]
[BREAKING] Default to node
crawler over shelling out to find
if watchman
is not enabled (#12320)FAQs
Jest plugin to use babel for transformation.
The npm package babel-jest receives a total of 22,123,011 weekly downloads. As such, babel-jest popularity was classified as popular.
We found that babel-jest 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
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.
Security News
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
Security News
The Socket Research team breaks down a malicious npm package targeting the legitimate DOMPurify library. It uses obfuscated code to hide that it is exfiltrating browser and crypto wallet data.