Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
@japa/errors-printer
Advanced tools
Print errors produced by the Japa tests runner
Install the package from the npm registry as follows:
npm i @japa/errors-printer
# yarn
yarn add @japa/errors-printer
You can print errors produced by japa test runner as follows.
import { ErrorsPrinter } from '@japa/errors-printer'
const printer = new ErrorsPrinter()
const error = new Error('boom')
await printer.printError(error)
Most of the times, you will find yourself printing errors using the Japa test summary. Here is how you can go about doing it.
import { ErrorsPrinter } from '@japa/errors-printer'
const printer = new ErrorsPrinter()
// assuming you have the runner instance
const summary = runner.getSummary()
const errorsList = []
summary.failureTree.forEach((suite) => {
suite.errors.forEach((error) => {
errorsList.push({ title: suite.name, ...error })
})
suite.children.forEach((groupOrTest) => {
if (groupOrTest.type === 'test') {
groupOrTest.errors.forEach((error) => {
errorsList.push({ title: groupOrTest.title, ...error })
})
return
}
groupOrTest.errors.forEach((error) => {
errorsList.push({ title: groupOrTest.name, ...error })
})
groupOrTest.children.forEach((test) => {
test.errors.forEach((error) => {
errorsList.push({ title: test.title, ...error })
})
})
})
})
await printer.printErrors(errorsList)
Following are the available methods.
Accepts error as the only argument. If the error is an assertion error, then the diff will be displayed. Otherwise, the error stack is printed.
Assertion diff
import { Assert } from '@japa/assert'
import { ErrorsPrinter } from '@japa/errors-printer'
const printer = new ErrorsPrinter()
try {
new Assert().deepEqual({ id: 1 }, { id: 2 })
} catch (error) {
await printer.printError(error)
}
Jest error
import expect from 'expect'
import { ErrorsPrinter } from '@japa/errors-printer'
const printer = new ErrorsPrinter()
try {
expect({ bar: 'baz' }).toEqual(expect.not.objectContaining({ bar: 'baz' }))
} catch (error) {
await printer.printError(error)
}
Error stack
import { ErrorsPrinter } from '@japa/errors-printer'
const printer = new ErrorsPrinter()
await printer.printError(new Error('boom'))
Print an array of errors produced by the Japa test runner summary. The method accepts an array of errors in the following format.
type Error = {
title: string,
phase: string,
error: Error
}
await printer.printErrors([
{
phase: 'test',
title: '2 + 2 = 4'
error: new Error('test failed')
},
{
phase: 'teardown',
title: '2 + 2 = 4'
error: new Error('teardown failed')
}
])
FAQs
Reusable package to pretty print test runner summary errors
The npm package @japa/errors-printer receives a total of 18,585 weekly downloads. As such, @japa/errors-printer popularity was classified as popular.
We found that @japa/errors-printer 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.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.