Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
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.
jest
Advanced tools
Package description
Jest is a delightful JavaScript Testing Framework with a focus on simplicity. It works with projects using: Babel, TypeScript, Node, React, Angular, Vue, and more. It's designed to ensure correctness of any JavaScript codebase. It allows you to write tests with an approachable, familiar, and feature-rich API that gives you results quickly.
Unit Testing
Jest allows you to write unit tests for your JavaScript functions. In this example, a simple test is written to check if the addition of 1 and 2 equals 3.
test('adds 1 + 2 to equal 3', () => {
expect(1 + 2).toBe(3);
});
Mocking
Jest provides a powerful mocking library that lets you mock objects, functions, and modules. In this example, an HTTP request is mocked to test the behavior of a function that fetches user data.
jest.mock('../api');
test('should fetch users', () => {
const users = [{name: 'Bob'}];
const resp = {data: users};
axios.get.mockResolvedValue(resp);
return Users.all().then(data => expect(data).toEqual(users));
});
Snapshot Testing
Snapshot testing enables you to test your UI or any serializable value to ensure it does not change unexpectedly. This example demonstrates testing an object against a snapshot, with some fields expected to match specific types rather than values.
test('will check the matchers and pass', () => {
const user = {
createdAt: new Date(),
id: Math.floor(Math.random() * 20),
name: 'LeBron James'
};
expect(user).toMatchSnapshot({
createdAt: expect.any(Date),
id: expect.any(Number)
});
});
Asynchronous Testing
Jest supports testing of asynchronous code. In this example, an asynchronous function `fetchData` is tested to ensure it resolves with the expected value 'peanut butter'.
test('the data is peanut butter', async () => {
await expect(fetchData()).resolves.toBe('peanut butter');
});
Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple. Mocha is often compared to Jest because of its flexible and configurable nature, but it requires more setup and configuration for features like mocking and snapshot testing, which Jest provides out of the box.
Jasmine is a behavior-driven development framework for testing JavaScript code. It does not rely on browsers, DOM, or any JavaScript framework. Similar to Jest, it comes with an easy syntax that makes writing tests simple. However, Jest offers more modern features like snapshot testing and built-in support for test coverage.
AVA is a test runner for Node.js with a concise API, detailed error output, and process isolation that lets you develop with confidence. AVA is designed to handle asynchronous testing more efficiently than Jest but lacks some of Jest's features like snapshot testing and built-in mocking.
Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any JavaScript testing framework. It's often used alongside other testing frameworks like Mocha or Jest to provide more expressive assertions. Unlike Jest, Chai is purely an assertion library and does not provide test runners or mocking utilities.
Changelog
29.6.0
[jest-circus, jest-snapshot]
Add support for snapshot matchers in concurrent tests (#14139)[jest-cli]
Include type definitions to generated config files (#14078)[jest-snapshot]
Support arrays as property matchers (#14025)[jest-core, jest-circus, jest-reporter, jest-runner]
Added support for reporting about start individual test cases using jest-circus (#14174)[jest-circus]
Prevent false test failures caused by promise rejections handled asynchronously (#14110)[jest-config]
Handle frozen config object (#14054)[jest-config]
Allow coverageDirectory
and collectCoverageFrom
in project config (#14180)[jest-core]
Always use workers in watch mode to avoid crashes (#14059).[jest-environment-jsdom, jest-environment-node]
Fix assignment of customExportConditions
via testEnvironmentOptions
when custom env subclass defines a default value (#13989)[jest-matcher-utils]
Fix copying value of inherited getters (#14007)[jest-mock]
Tweak typings to allow jest.replaceProperty()
replace methods (#14008)[jest-mock]
Improve user input validation and error messages of spyOn
and replaceProperty
methods (#14087)[jest-runtime]
Bind jest.isolateModulesAsync
to this
(#14083)[jest-runtime]
Forward wrapperLength
to the Script
constructor as columnOffset
for accurate debugging (#14148)[jest-runtime]
Guard _isMockFunction
access with in
(#14188)[jest-snapshot]
Fix a potential bug when not using prettier and improve performance (#14036)[@jest/transform]
Do not instrument .json
modules (#14048)[jest-worker]
Restart a shut down worker before sending it a task (#14015)[*]
Update semver
dependency to get vulnerability fix (#14262)[docs]
Updated documentation for the --runTestsByPath
CLI command (#14004)[docs]
Updated documentation regarding the synchronous fallback when asynchronous code transforms are unavailable (#14056)[docs]
Update jest statistics of use and downloads in website Index.Readme
🃏 Delightful JavaScript Testing
👩🏻💻 Developer Ready: Complete and ready to set-up JavaScript testing solution. Works out of the box for any React project.
🏃🏽 Instant Feedback: Failed tests run first. Fast interactive mode can switch between running all tests or only test files related to changed files.
📸 Snapshot Testing: Jest can capture snapshots of React trees or other serializable values to simplify UI testing.
Read More: https://jestjs.io/
FAQs
Delightful JavaScript Testing.
The npm package jest receives a total of 22,086,712 weekly downloads. As such, jest popularity was classified as popular.
We found that jest 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.
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.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.