Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
The jest-cli npm package is the command line interface for Jest, a popular JavaScript testing framework. It allows developers to run tests, configure Jest options, and interact with Jest directly from the command line. Jest is widely used for testing React applications, but it can also be used for testing other JavaScript code.
Running Tests
Run all tests in a project. This is the most basic and commonly used command to start the Jest test runner.
jest
Running Tests in Watch Mode
Run Jest in watch mode. This command will re-run tests when files change, which is useful during development.
jest --watch
Running Specific Tests
Run tests in a specific file or files matching a pattern. This allows for more targeted testing.
jest testFileName
Configuring Jest
Specify a configuration file for Jest. This allows developers to customize how Jest behaves, including setting up test environments, mock implementations, and more.
jest --config=jest.config.js
Coverage Reporting
Generate a test coverage report. This helps developers understand which parts of their codebase are covered by tests.
jest --coverage
Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple. It's often compared to Jest but is considered more flexible and less opinionated, though it requires more setup and configuration.
Jasmine is a behavior-driven development framework for testing JavaScript code. It does not require a DOM and has no dependencies, making it suited for websites, Node.js projects, or anywhere JavaScript can run. It's similar to Jest but has a different syntax and set of features.
AVA is a test runner for Node.js with a concise API, detailed error output, and process isolation that lets you develop with confidence. It's different from Jest in that it runs tests concurrently, which can be faster, but it may not be as feature-rich as Jest.
Tape is a tap-producing test harness for Node.js and browsers. It's minimalistic and straightforward, with less abstraction than Jest. It's suitable for small to medium-sized projects that don't need the extensive features Jest provides.
Painless JavaScript Unit Testing
Familiar Approach: Built on top of the Jasmine test framework, using familiar expect(value).toBe(other) assertions
Mock by Default: Automatically mocks CommonJS modules returned by require(), making most existing code testable
Short Feedback Loop: DOM APIs are mocked and tests run in parallel via a small node.js command line utility
Check out the Getting Started tutorial. It's pretty simple!
<generated_api_start />
jest
objectjest.autoMockOff()
jest.autoMockOn()
jest.clearAllTimers()
jest.dontMock(moduleName)
jest.genMockFromModule(moduleName)
jest.genMockFunction()
jest.genMockFn()
jest.mock(moduleName)
jest.runAllTicks()
jest.runAllTimers()
jest.runOnlyPendingTimers()
jest.setMock(moduleName, moduleExports)
mockFn.mock.calls
mockFn.mock.instances
mockFn.mockClear()
mockFn.mockImplementation(fn)
mockFn.mockImpl(fn)
mockFn.mockReturnThis()
mockFn.mockReturnValue(value)
mockFn.mockReturnValueOnce(value)
config.cacheDirectory
[string]config.collectCoverage
[boolean]config.collectCoverageOnlyFrom
[object]config.globals
[object]config.moduleFileExtensions
[array]config.modulePathIgnorePatterns
[array]config.rootDir
[string]config.scriptPreprocessor
[string]config.setupEnvScriptFile
[string]config.setupTestFrameworkScriptFile
[string]config.testDirectoryName
[string]config.testFileExtensions
[array]config.testPathDirs
[array]config.testPathIgnorePatterns
[array]config.testPathPattern
[string]config.unmockedModulePathPatterns
[array]afterEach(fn)
beforeEach(fn)
describe(name, fn)
it(name, fn)
it.only(name, fn)
executes only this test. Useful when investigating a failurejest
pit(name, fn)
helper for promisesrequire(module)
require.requireActual(module)
xdescribe(name, fn)
xit(name, fn)
expect(value)
.not
inverse the next comparison.toThrow(?message)
.toBe(value)
comparison using ===
.toEqual(value)
deep comparison. Use jasmine.any(type)
to be softer.toBeFalsy()
.toBeTruthy()
.toBeNull()
.toBeUndefined()
.toBeDefined()
.toMatch(regexp)
.toContain(string)
.toBeCloseTo(number, delta)
.toBeGreaterThan(number)
.toBeLessThan(number)
.toBeCalled()
.toBeCalledWith(arg, um, ents)
.lastCalledWith(arg, um, ents)
<generated_api_end />
FAQs
Delightful JavaScript Testing.
The npm package jest-cli receives a total of 22,500,095 weekly downloads. As such, jest-cli popularity was classified as popular.
We found that jest-cli 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
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.