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.
tart-nodeunit
Advanced tools
Adapter for nodeunit
testing (tart module)
Adapter for nodeunit
testing (tart module)
To run the below example run:
npm run test
"use strict";
var adapter = require('../index.js');
var test = module.exports = {};
test["example from tart-tracing exercises all actor primitives"] = function (test) {
test.expect(4);
var testing = adapter.testing(test);
var oneTimeBeh = function oneTimeBeh(message) {
test.equal(message, 'bar');
var child = this.sponsor(createdBeh); // create
child('foo'); // send
this.behavior = becomeBeh; // become
};
var createdBeh = function createdBeh(message) {
test.equal(message, 'foo');
};
var becomeBeh = function becomeBeh(message) {
test.equal(message, 'baz');
};
var actor = testing.sponsor(oneTimeBeh); // create
actor('bar'); // send
actor('baz'); // send
test.ok(testing.dispatch());
test.done();
};
npm test
tart-nodeunit
is an adaptor for running nodeunit
tests.
Public API
test
: Object nodeunit test object.sponsor
: Function function (behavior) {}
A capability to create
new actors.dispatch
: Function function ([options]) {}
Function to call to
dispatch events. Returns true
when there are no more events.tracing
: Object Tracing control object.Returns the testing control object.
behavior
: Function function (message) {}
Actor behavior to invoke every time an actor receives a message.function (message) {}
Actor reference in form of a capability that can be invoked to send the actor a message.Creates a new (traceable) actor and returns the actor reference in form of a capability to send that actor a message.
var adapter = require('../index.js');
var test = module.exports = {};
test["sponsor creates an actor"] = function (test) {
test.expect(2);
var testing = adapter.testing(test);
var actor = testing.sponsor(function (message) { // create
test.ok(message);
});
actor(true); // send
test.ok(testing.dispatch());
test.done();
};
options
: Object (Default: { fail: function(exception) { throw exception; } }
) Optional overrides.
fail
: Function function (exception){}
Function called to report exceptions from actor behavior (Example: function (exception){ /* ignore exceptions */ }
).count
: Number (Default: undefined
) Maximum number of events to dispatch,
or unlimited if undefined
.true
if event queue is exhausted, otherwise false
.Dispatch events.
If options.count
is specified, dispatch at most options.count
events.
When the event queue is exhausted, return true
.
Otherwise return false
.
If an actor behavior throws an exception,
options.fail()
is called to handle it.
The default implementation of options.fail()
throws the exception out of testing.dispatch()
.
var adapter = require('../index.js');
var test = module.exports = {};
test["dispatch delivers limited number of events"] = function (test) {
test.expect(4);
var testing = adapter.testing(test);
var actor = testing.sponsor(function (message) { // create
test.ok(message);
this.self(message + 1); // send
});
actor(1); // send
var done = testing.dispatch({ count: 3 });
test.strictEqual(done, false);
test.done();
};
FAQs
Tart nodeunit
The npm package tart-nodeunit receives a total of 0 weekly downloads. As such, tart-nodeunit popularity was classified as not popular.
We found that tart-nodeunit 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
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.