![Introducing Dashboard Analytics](https://cdn.sanity.io/images/cgdhsj6q/production/af327c5bd94708db501516a75da6870aef894c64-2286x1522.png?w=400&fit=max&auto=format)
Product
Introducing Dashboard Analytics
We're introducing a new Analytics feature in the Socket dashboard so you can view changes in your organization's and repositories' alerts over time.
@jest/globals
Advanced tools
The @jest/globals package provides access to Jest's global variables and functions, making it easier to write tests by providing a consistent testing environment. This package is particularly useful when working with ES modules, where Jest's globals are not automatically available. It includes functionalities such as test definition, mocking, and assertions.
Defining tests
Allows the definition of test cases. The `test` function is used to define a block of code that tests a specific part of your application. The `expect` function is used to make an assertion about a particular value.
import { test, expect } from '@jest/globals';
test('adds 1 + 2 to equal 3', () => {
expect(1 + 2).toBe(3);
});
Mocking functions
Enables the mocking of functions, allowing you to simulate the behavior of your code's dependencies. This is useful for isolating the code under test and controlling its environment.
import { jest } from '@jest/globals';
const mockFn = jest.fn();
mockFn.mockReturnValue('mocked value');
expect(mockFn()).toBe('mocked value');
Grouping tests
Provides a way to group related tests using the `describe` function. This helps in organizing tests, especially when testing complex applications.
import { describe, test, expect } from '@jest/globals';
describe('math operations', () => {
test('adds 1 + 2 to equal 3', () => {
expect(1 + 2).toBe(3);
});
test('subtracts 2 - 1 to equal 1', () => {
expect(2 - 1).toBe(1);
});
});
Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple. It's similar to @jest/globals in providing a testing structure (describe and it blocks), but it requires additional libraries like Chai for assertions and Sinon for spies, mocks, and stubs.
Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework. It's similar to the assertion part of @jest/globals, offering a range of assertions via expect, should, and assert interfaces. However, it does not provide test runner or mocking capabilities.
Sinon provides standalone test spies, stubs, and mocks for JavaScript. Works with any unit testing framework. It's similar to the mocking functionality of @jest/globals but is focused solely on the aspect of mocking, without an integrated test runner or assertion library.
27.0.0
[babel-jest]
Add async transformation (#11192)[jest-changed-files]
Use '--' to separate paths from revisions (#11160)[jest-circus]
[BREAKING] Fail tests when multiple done()
calls are made (#10624)[jest-circus, jest-jasmine2]
[BREAKING] Fail the test instead of just warning when describe returns a value (#10947)[jest-config]
[BREAKING] Default to Node testing environment instead of browser (JSDOM) (#9874)[jest-config]
[BREAKING] Use jest-circus
as default test runner (#10686)[jest-config]
Add support for preset
written in ESM (#11200)[jest-config, jest-runtime]
Support ESM for files other than .js
and .mjs
(#10823)[jest-config, jest-runtime]
[BREAKING] Use "modern" implementation as default for fake timers (#10874 & #11197)[jest-config
Allow passing forceNodeFilesystemAPI
through to jest-haste-map
(#11264)[jest-config, jest-haste-map, jest-resolve, jest-runner, jest-runtime, jest-test-sequencer, jest-transform, jest-types]
[BREAKING] Add custom HasteMap class implementation config option (#11107)[jest-core]
make TestWatcher
extend emittery
(#10324)[jest-core]
Run failed tests interactively the same way we do with snapshots (#10858)[jest-core]
more TestSequencer
methods can be async (#10980)[jest-core]
Add support for testSequencer
written in ESM (#11207)[jest-core]
Add support for globalSetup
and globalTeardown
written in ESM (#11267)[jest-core]
Add support for watchPlugins
written in ESM (#11315)[jest-core]
Add support for runner
written in ESM (#11232)[jest-core]
Add support for reporters
written in ESM (#11427)[jest-each]
Add support for interpolation with object properties (#11388)[jest-environment-node]
Add AbortController to globals (#11182)[@jest/fake-timers]
Update to @sinonjs/fake-timers
to v7 (#11198)[jest-haste-map]
Handle injected scm clocks (#10966)[jest-haste-map]
Add enableSymlinks
configuration option to follow symlinks for test files (#9351)[jest-repl, jest-runner]
[BREAKING] Run transforms over environment (#8751)[jest-repl]
Add support for testEnvironment
written in ESM (#11232)[jest-reporters]
Add static filepath property to all reporters (#11015)[jest-runner]
[BREAKING] set exit code to 1 if test logs after teardown (#10728)[jest-runner]
[BREAKING] Run transforms over runner
(#8823)[jest-runner]
[BREAKING] Run transforms over testRunner
(#8823)[jest-runner]
Possibility to use ESM for test environment (11033)[jest-runner]
Add support for testRunner
written in ESM (#11232)[jest-runtime]
Detect reexports from CJS as named exports in ESM (#10988)[jest-runtime]
Support for async code transformations (#11191 & #11220)[jest-snapshot]
[BREAKING] Make prettier optional for inline snapshots - fall back to string replacement (#7792 & #11192)[jest-snapshot]
[BREAKING] Run transforms over snapshotResolver
(#8829)[jest-transform]
Pass config options defined in Jest's config to transformer's process
and getCacheKey
functions (#10926)[jest-transform]
Add support for transformers written in ESM (#11163)[jest-transform]
[BREAKING] Do not export ScriptTransformer
class, instead export the async function createScriptTransformer
(#11163)[jest-transform]
Async code transformations (#9889)[jest-transform]
Support transpiled transformers (#11193)[jest-transform]
[BREAKING] requireAndTranspileModule
always return a Promise
, and the third parameter type is changed to RequireAndTranspileModuleOptions
which accept applyInteropRequireDefault
option (#11232)[jest-transform]
[BREAKING] createTranspilingRequire
return function which return a Promise
now (#11232)[jest-util]
add requireOrImportModule for importing CJS or ESM (#11199)[jest-util]
add applyInteropRequireDefault
option on requireOrImportModule
(#11232)[jest-watcher]
Added support for clearing the line when <C-u>
is pressed in a watch mode pattern prompt (#11358)[jest-worker]
Add support for custom task queues and adds a PriorityQueue
implementation. (#10921)[jest-worker]
Add in-order scheduling policy to jest worker (10902)[pretty-format]
Better print for sparse arrays (11326)[pretty-print]
Add option printBasicPrototype
which determines whether or not the prototype should be printed for raw objects or arrays (#11441)[babel-plugin-jest-hoist]
Add __dirname
and __filename
to whitelisted globals (#10903)[expect]
[BREAKING] Revise expect.not.objectContaining()
to be the inverse of expect.objectContaining()
, as documented. (#10708)[expect]
[BREAKING] Make toContain
more strict with the received type (#10119 & #10929)[expect]
[BREAKING] matcherResult
on JestAssertionError
are now strings rather than functions (#10989)[jest-circus]
Fixed the issue of beforeAll & afterAll hooks getting executed even if it is inside a skipped describe
block (#10806)[jest-circus]
Fix testLocation
on Windows when using test.each
(#10871)[jest-cli]
Use testFailureExitCode when bailing from a failed test (#10958)[jest-cli]
Print custom error if error thrown from global hooks is not an error already (#11003)[jest-cli]
Allow running multiple "projects" from programmatic API (#11307)[jest-cli]
Fix missing collectCoverage after init (#11353)[jest-cli, jest-config, jest-types]
Move all default values into jest-config
(#9924)[jest-config]
[BREAKING] Change default file extension order by moving json behind ts and tsx (10572)[jest-console]
console.dir
now respects the second argument correctly (#10638)[jest-core]
Don't report PerformanceObserver as open handle (#11123)[jest-core]
Use WeakRef
to hold timers when detecting open handles (#11277)[jest-core]
Correctly detect open handles that were created in test functions using done
callbacks (#11382)[jest-core]
Do not collect RANDOMBYTESREQUEST
as open handles (#11278)[jest-core]
Wait briefly for open handles to close before flagging them when using --detectOpenHandles
(#11429)[jest-diff]
[BREAKING] Use only named exports (#11371)[jest-each]
[BREAKING] Ignore excess words in headings (#8766)[jest-each]
Support array index with template strings (#10763)[jest-each]
Interpolate %%
correctly (#11364)[jest-each]
Fix wrong interpolation when the value of array contains multiple %
(#11364)[jest-environment]
[BREAKING] Drop support for runScript
for test environments (#11155)[jest-environment-jsdom]
Use inner realm’s ArrayBuffer
constructor (#10885)[jest-environment-jsdom]
[BREAKING] Remove Node globals setImmediate
and clearImmediate
(#11222)[jest-get-type]
[BREAKING] Convert to ES Module (#11359)[jest-globals]
[BREAKING] Disallow return values other than a Promise
from hooks and tests (#10512)[jest-globals]
[BREAKING] Disallow mixing a done callback and returning a Promise
from hooks and tests (#10512)[jest-haste-map]
Vendor NodeWatcher
from sane
(#10919)[jest-jasmine2]
Fixed the issue of beforeAll
& afterAll
hooks getting executed even if it is inside a skipped describe
block when it has child tests
marked as either only
or todo
(#10806)[jest-jasmine2]
Fixed the issues of child tests
marked with only
or todo
getting executed even if it is inside a skipped parent describe
block (#10806)[jest-jasmine2]
Wrap all test functions so they open handles that were created in test functions using done
callbacks can be detected (#11382)[jest-reporter]
Handle empty files when reporting code coverage with V8 (#10819)[jest-resolve]
Replace read-pkg-up with escalade package (#10781)[jest-resolve]
Disable jest-pnp-resolver
for Yarn 2 (#10847)[jest-runtime]
[BREAKING] Do not inject global
variable into module wrapper (#10644)[jest-runtime]
[BREAKING] remove long-deprecated jest.addMatchers
, jest.resetModuleRegistry
, and jest.runTimersToTime
(#9853)[jest-runtime]
Fix stack overflow and promise deadlock when importing mutual dependant ES module (#10892)[jest-runtime]
Prevent global module registry from leaking into isolateModules
registry (#10963)[jest-runtime]
Refactor to prevent race condition when linking and evaluating ES Modules (#11150)[jest-runtime]
Throw correct error when attempting to load ESM via require
(#11260)[jest-runtime]
Do not cache modules that throw during evaluation (#11263)[jest-transform]
Show enhanced SyntaxError
message for all SyntaxError
s (#10749)[jest-transform]
[BREAKING] Refactor API to pass an options bag around rather than multiple boolean options (#10753)[jest-transform]
[BREAKING] Refactor API of transformers to pass an options bag rather than separate config
and other options (#10834)[jest-types]
Fix Config.ts
projects
types (#11285)[jest-util]
Replace micromatch with picomatch to fix issues with negated globs (#11287)[jest-validate]
Use en-US
locale to avoid case conversion problems while validating CLI options on machines with some certain locales(e.g. Turkish) set as default locale. (#11412)[jest-worker]
[BREAKING] Use named exports (#10623)[jest-worker]
Do not swallow errors during serialization (#10984)[jest-worker]
Handle ERR_IPC_CHANNEL_CLOSED
errors properly (#11143)[pretty-format]
[BREAKING] Convert to ES Modules (#10515)[pretty-format]
Only call hasAttribute
if it's a function (#11000)[pretty-format]
Handle jsdom attributes properly (#11189)[pretty-format]
Import pretty-format using named imports (#11360)[*]
[BREAKING] Only support Node LTS releases and Node 15 (#10685)[*]
[BREAKING] Add exports
field to all package.json
s (#9921)[*]
Make it easier for Jest's packages to use the VM escape hatch (#10824)[*]
[BREAKING] Remove deprecated mapCoverage
(#9968)[babel-jest]
[BREAKING] Migrate to ESM (#11193)[docs]
Correct example using browser-resolve
(#11140)[docs]
Clarify timers
configuration property (#11376)[jest, jest-core]
[BREAKING] Replace TestScheduler
export with createTestScheduler
(#11427)[jest-config]
[BREAKING] Remove enabledTestsMap
config, use filter
instead (#10787)[jest-console]
[BREAKING] Move root
into config
and take GlobalConfig
as mandatory parameter for getConsoleOutput
(#10126)[jest-console]
Export LogEntry (#11017)[jest-fake-timers]
Clarify global behavior of jest.useFakeTimers
and jest.useRealTimers
(#10867)[jest-haste-map]
[BREAKING] Migrate to ESM (#10875)[jest-haste-map]
[BREAKING] Remove support for deprecated option ignorePattern
as function (#10348)[jest-jasmine2]
[BREAKING] Migrate to ESM (#10906)[jest-jasmine2]
[BREAKING] Remove unused options argument from Env
constructor (#10240)[jest-repl, jest-runtime]
[BREAKING] Move the jest-runtime
CLI into jest-repl
(#10016 & #10925)[jest-resolve]
[BREAKING] Migrate to ESM (#10688)[jest-resolve-dependencies]
[BREAKING] Migrate to ESM (#10876)[jest-mock]
[BREAKING] Migrate to ESM (#10887)[jest-reporters]
[BREAKING] Make node-notifier
a peer dependency (#10977)[jest-resolve, jest-runtime]
[BREAKING] Use Map
s instead of objects for all cached resources (#10968)[jest-runner]
[BREAKING] Migrate to ESM (#10900)[jest-runtime]
[BREAKING] Remove deprecated and unused getSourceMapInfo
from Runtime (#9969)[jest-transformer]
[BREAKING] Remove unused isCoreModule
option (#11166)[jest-util]
No longer checking enumerable
when adding process.domain
(#10862)[jest-validate]
[BREAKING] Remove recursiveBlacklist
option in favor of previously introduced recursiveDenylist
(#10650)[website]
Replace 'Github' with 'GitHub' (#11279)[website]
Remove a language code from the link to the Node.js website (#11282)[website]
Remove a duplicated word (#11281)[website]
Add french to website (#11361)[jest-resolve]
Cache reading and parsing of package.json
s (#11076)[jest-runtime, jest-transform]
share cacheFS
between runtime and transformer (#10901)[jest-runtime]
Load chalk
only once per worker (#10864)[jest-worker]
Fix memory leak of previous task arguments while no new task is scheduled (#11187)FAQs
Unknown package
The npm package @jest/globals receives a total of 13,788,927 weekly downloads. As such, @jest/globals popularity was classified as popular.
We found that @jest/globals 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
We're introducing a new Analytics feature in the Socket dashboard so you can view changes in your organization's and repositories' alerts over time.
Security News
A new OpenSSF report uncovers critical gaps in secure software training, with 75% of new developers unfamiliar with secure practices, highlighting urgent educational needs.
Security News
The 2023 Python Developers Survey reveals key trends in packaging, web frameworks, and developer demographics, highlighting a shift toward innovative tools as the Python community diversifies and grows among less experienced developers.