Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
"An invaluable service mocking platform built on Express."
Testing is difficult when you don't have control of your data. This project puts you in complete control, enabling you to implement real mock web services with ease. Real mock services means you have control of response payloads, HTTP Status Codes, response latency, and more.
Have a requirement to implement specific behavior when a service is slow to respond or a server returns an unexpected status code? No problem! This platform makes developing for such requirements easy.
$ npm install mockyeah --save-dev
$ mkdir example-app && cd example-app
$ npm init # all defaults will be fine
mockyeah
$ npm install mockyeah --save-dev
$ touch index.js
const mockyeah = require('mockyeah');
mockyeah.get('/hello-world', { text: 'Hello World' });
$ node index.js
Profit. You should see "Hello World" returned from your mock server.
const request = require('supertest')('http://localhost:4041');
const mockyeah = require('mockyeah');
describe('Wondrous service', () => {
// remove service mocks after each test
afterEach(() => mockyeah.reset());
it('should create a mock service that returns an internal error', (done) => {
// create failing service mock
mockyeah.get('/wondrous', { status: 500 });
// assert service mock is working
request
.get('/wondrous')
.expect(500, done);
});
it('should create a mock service that returns JSON', (done) => {
// create service mock that returns json data
mockyeah.get('/wondrous', { json: { foo: 'bar' } });
// assert service mock is working
request
.get('/wondrous')
.expect(200, { foo: 'bar' }, done);
});
});
mockyeah.get(path, options)
mockyeah.put(path, options)
mockyeah.post(path, options)
mockyeah.delete(path, options
Each of the methods above create a mock service with a HTTP verb matching its respective method name.
Path to which to respond. Fully supports all Express path matching options.
Response options informing Mock Yeah how to respond to matching requests. Supported options:
./mockyeah/fixtures
in your project.text/html
.application/json
.text/plain
.res.type(type)
; more info here: http://expressjs.com/en/4x/api.html#res.typeNote, only one of the following is permitted per service: filePath, fixture, html, json, or text.
mockyeah.loadSet(setName)
Creates a set of mock services. Sets support the full Mock Service Creation API documented above.
A set is a Node module that returns an array of service parameter objects, each being the definition for
a single mock service. The default set file location is ./mockyeah/sets
.
Example of usage:
Invoking:
mockyeah.loadSet('example')
Creates mock services from definitions defined in ./mockyeah/sets/example.js
module.exports = [
{
method: 'get',
path: '/say-hello',
options: {
text: 'Well, hello there.'
}
},
{
method: 'get',
path: '/say-your-lost',
options: {
text: 'I\'m lost.',
status: 404
}
},
{
method: 'get',
path: '/say-oh-noes',
options: {
text: 'Oh noes!',
status: 500
}
},
{
method: 'get',
path: '/respond-with-a-file',
options: {
filePath: './test/fixtures/some-data.json'
}
},
{
method: 'get',
path: '/respond-with-a-fixture',
options: {
fixture: 'some-data.json'
}
},
{
method: 'get',
path: '/wait-to-respond',
options: {
text: 'Oh, hey there.',
latency: 1000
}
},
{
method: 'get',
path: '/say-anything-you-want',
options: (req, res) => {
res.status(200);
res.send('Inversion of service control enables you to respond with whatever you want.');
}
}
];
Resets all existing mock services. Useful on test teardown.
Shuts down the Mock Yeah Express server. Useful if running Mock Yeah with a file
watcher. Mock Yeah attempts to start a new instance of Express each test
iteration. After all tests run, mockyeah.close()
should be called to shutdown
Mock Yeah's Express server. Failing to do so will result in EADDRINUSE
exceptions. This is due to Mock Yeah attempting to start a server on a port
occupied by a server it started previously.
Installing project and dependencies
# download project
$ git clone git@github.com:ryanricard/mockyeah.git
$ cd mockyeah
# install proper Node version
$ nvm install v4.2.3
$ nvm use
# install mocha
$ npm install -g mocha
# if tests pass, you're good to go
$ npm test
FAQs
A powerful service mocking, recording, and playback utility.
We found that mockyeah demonstrated a not healthy version release cadence and project activity because the last version was released 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
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.