New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

mini-mock

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mini-mock - npm Package Compare versions

Comparing version 0.2.1 to 0.2.2

test/lib/voice-widget.js

46

lib/mocker.js

@@ -16,2 +16,3 @@ /**

this.__mockedAsyncFuncs = [];
this.__mockedPromiseFuncs = [];

@@ -32,2 +33,3 @@ return this;

name: funcName,
type: 'callback',
expectedCbArgs: expectedCallbackArgs,

@@ -39,2 +41,13 @@ delay: delay

Mocker.prototype.withPromiseStub = function (funcName, expectedResolveArg, expectedRejectArg, delay) {
this.__mockedPromiseFuncs.push({
name: funcName,
type: 'promise',
expectedResolveArg: expectedResolveArg,
expectedRejectArg: expectedRejectArg,
delay: delay
});
return this;
};
Mocker.prototype.create = function () {

@@ -65,3 +78,3 @@

}, x.delay)
}else
} else
return cbFunc.apply(undefined, x.expectedCbArgs);

@@ -71,2 +84,33 @@ };

this.__mockedPromiseFuncs.forEach((x) => {
if (!mock[x.name]) throw new Error('Function not found!');
mock.recorder[x.name] = {
calls: 0
};
mock[x.name] = function () {
console.log('INVOKING', x.name);
mock.recorder[x.name].calls += 1;
if (x.delay != null) {
setTimeout(function () {
return new Promise(function (resolve, reject) {
if (x.expectedRejectArg != null)
return reject(x.expectedRejectArg);
resolve(x.expectedResolveArg);
});
}, x.delay)
} else
return new Promise(function (resolve, reject) {
if (x.expectedRejectArg != null)
return reject(x.expectedRejectArg);
resolve(x.expectedResolveArg);
});
};
});
this.__mockedSyncFuncs.forEach((x) => {

@@ -73,0 +117,0 @@ if (!mock[x.name]) throw new Error('Function not found!');

2

package.json
{
"name": "mini-mock",
"version": "0.2.1",
"version": "0.2.2",
"description": "An ultra-lightweight mocking framework for Node",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -7,4 +7,5 @@ /**

function Robot(motorFactory) {
function Robot(motorFactory, widgetFactory) {
this.__motorFactory = motorFactory;
this.__widgetFactory = widgetFactory;
}

@@ -17,2 +18,3 @@

motor.start(function (e, speed) {
if (e)

@@ -23,2 +25,12 @@ return cb(e);

});
};
Robot.prototype.talk = function (cb) {
var voiceWidget = this.__widgetFactory.getVoiceWidget();
voiceWidget.speak()
.then(function (result) {
cb(null, result);
})
};

@@ -9,2 +9,5 @@ /**

var MotorFactory = require('./lib/motor-factory');
var VoiceWidget = require('./lib/voice-widget');
var WidgetFactory = require('./lib/widget-factory');
var Mocker = require('../lib/mocker');

@@ -33,2 +36,10 @@

this.__voiceWidget = mocker.mock(VoiceWidget.prototype)
.withPromiseStub('speak', 'Zip zap!', null, null) // promise will resolve with 'Zip zap!'
.create();
this.__widgetFactory = mocker.mock(WidgetFactory.prototype)
.withSyncStub('getVoiceWidget', this.__voiceWidget)
.create();
done();

@@ -52,2 +63,12 @@ });

it('mock promise function returns correct result', function (done) {
var robot = new Robot(null, this.__widgetFactory);
robot.talk(function (err, result) {
expect(result).to.equal('Zip zap!');
done();
})
});
it('mock asynchronous function with delay returns correct result', function (done) {

@@ -54,0 +75,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc