
Research
/Security News
Fake imToken Chrome Extension Steals Seed Phrases via Phishing Redirects
Mixed-script homoglyphs and a lookalike domain mimic imToken’s import flow to capture mnemonics and private keys.
Nested tape tests with before/after, async, and promise support
tape-plus is a wrapper for tape for a batteries-included experience for writing elegant tape tests. It provides a user-friendly API modelled after Mocha.
tape is a peer dependency of tape-plus. Install them together.
npm install --save-dev tape tape-plus
Use require('tape-plus') as a substitute for require('tape'). The only difference is you don't need to use t.end() anymore.
var test = require('tape-plus')
test('adding numbers', t => {
t.equal(10, 10)
})
Use test.group to define test groups.
var group = require('tape-plus').group
group('add()', test => {
test('adding', t => {
t.equal(add(1, 1), 2)
})
test('subtracting', t => {
t.equal(add(10, -1), 9)
})
})
You can also make groups within groups. Just call test.group again.
var group = require('tape-plus').group
group('add()', test => {
test.group('adding', test => {
test('positive numbers', t => {
t.equal(add(10, 10), 20)
})
test('negative numbers', t => {
t.equal(add(-10, -10), -20)
})
})
})
Use test.beforeEach and test.afterEach to add hooks.
var group = require('tape-plus').group
group('add()', test => {
var base
test.beforeEach(t => {
base = 10
})
test.afterEach(t => {
// ...
})
test('adds numbers', t => {
t.equal(add(base, 1), 11)
})
test('subtracts numbers', t => {
t.equal(add(base, -1), 9)
})
})
Pass a second parameter to test() and it'll be a callback, Mocha-style.
var group = require('tape-plus').group
group('add()', test => {
var base
test('async callback', (t, next) => {
setTimeout(() => {
t.equal(1, 1)
next()
})
})
})
Return a promise from inside a test() block. Rejected promises will be an error.
var group = require('tape-plus').group
test('async callback', t => {
return fetch('http://site.com')
.then(data => {
t.equal(data, '<html></html>')
})
})
test.describe is an alias for test.group.
var describe = require('tape-plus').describe
describe('add()', it => {
it('adds numbers', t => {
t.equal(add(1, 1), 2)
})
it('subtracts numbers', t => {
t.equal(add(10, -1), 9)
})
})
tape-plus is implemented as a decorator, so you can mix it in with other stuff. Here's an example with extend-tape.
var test = require('tape')
test = require('extend-tape')(tape, { /*...*/ })
test = require('tape-plus/wrap')(tape)
tape-plus © 2016+, Rico Sta. Cruz. Released under the MIT License.
Authored and maintained by Rico Sta. Cruz with help from contributors (list).
ricostacruz.com · GitHub @rstacruz · Twitter @rstacruz
FAQs
Nested tape tests with before/after, async, and promise support
We found that tape-plus demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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
Mixed-script homoglyphs and a lookalike domain mimic imToken’s import flow to capture mnemonics and private keys.

Security News
Latio’s 2026 report recognizes Socket as a Supply Chain Innovator and highlights our work in 0-day malware detection, SCA, and auto-patching.

Company News
Join Socket for live demos, rooftop happy hours, and one-on-one meetings during BSidesSF and RSA 2026 in San Francisco.