
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
@whodunit/assert
Advanced tools
@whodunit/assert is extending the native Node.js assert module. Every method in assert also is available with @whodunit/assert, plus some code scaffolding related assertion helpers.
$ npm install @whodunit/assert
const assert = require('@whodunit/assert');
assert(true);
assert.equal(1, 1);
assert.file()Assert that a file exists.
assert.file('templates/user.hbs');
Assert that each file in the array exists.
assert.file(['templates/user.hbs', 'templates/user/edit.hbs']);
assert.noFile()Assert that a file doesn't exist.
assert.noFile('templates/user.hbs');
Assert that each of an array of files doesn't exist.
assert.noFile(['templates/user.hbs', 'templates/user/edit.hbs']);
assert.fileContent()Assert that a file's content matches a string.
assert.fileContent('models/user.js', 'App.User = DS.Model.extend');
Assert that a file's content matches a regex.
assert.fileContent('models/user.js', /App\.User = DS\.Model\.extend/);
Assert that each of an array of files content matches a regex or string.
assert.fileContent([
['models/user.js', 'App.User = DS.Model.extend'],
['controllers/user.js', /App\.UserController = Ember\.ObjectController\.extend/]
]);
assert.noFileContent()Assert that a file's content does not match a string.
assert.noFileContent('models/user.js', 'App.User = DS.Model.extend');
Assert that a file's content does not match a regex.
assert.noFileContent('models/user.js', /App\.User = DS\.Model\.extend/);
Assert that each of an array of files content does not match a regex or string.
assert.noFileContent([
['models/user.js', 'App.User = DS.Model.extend'],
['controllers/user.js', /App\.UserController = Ember\.ObjectController\.extend/]
]);
assert.textEqual()Assert that two strings are equal after standardization of newlines.
assert.textEqual('I have a yellow cat', 'I have a yellow cat');
assert.implement()Assert an Object implements an interface.
assert.implement(fs, ['readFile']);
assert.notImplement()Assert an Object doesn't implement any method of an interface.
assert.notImplement(fs, ['foo']);
assert.objectContent()Assert an object contains at least a set of keys.
var anObject = {a: 1};
assert.objectContent(anObject, {a: 2});
assert.noObjectContent()Assert an object does not contain at least a set of keys.
var anObject = {a: 1};
assert.noObjectContent(anObject, {a: 1});
assert.jsonFileContent()Assert a JSON file contains at least a set of keys (relies on assert.objectContent()).
assert.jsonFileContent('path/to/file.json', {a: 2});
assert.noJsonFileContent()Assert a JSON file does not contain at least a set of keys (relies on assert.noObjectContent()).
assert.noJsonFileContent('path/to/file.json', {a: 1});
BSD-2-Clause © Google
FAQs
Assert utility from whodunit
We found that @whodunit/assert 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.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.