Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
"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.
The npm package mockyeah receives a total of 69 weekly downloads. As such, mockyeah popularity was classified as not popular.
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.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.