Socket
Book a DemoInstallSign in
Socket

mock-aws-sinon

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

mock-aws-sinon

A quick and simple library that lets you use [Sinon](http://sinonjs.org) stubs with [aws-sdk](https://aws.amazon.com/sdk-for-node-js/).

1.3.2
latest
Source
npmnpm
Version published
Maintainers
1
Created
Source

mock-aws-sinon

A quick and simple library that lets you use Sinon stubs with aws-sdk.

Why is this needed?

aws-sdk creates services in a weird way, so it isn't possible to do, say:

sinon.stub(AWS.S3.prototype, "getObject").returns({
   an: "object"
})

Because AWS.S3.prototype doesn't actually have a function called getObject. It is possible to just stub an instance of new AWS.S3, but chances are you instantiating that in your non-test code, and don't want to structure it weirdly just so that you can run tests properly.

How do I use it?

First, install it:

npm install mock-aws-sinon

Then, rather than call sinon.stub, you can call this module as a function, which will return a stub. Like so:

var mockAWSSinon = require('mock-aws-sinon');

mockAWSSinon('S3','getObject').returns({
    an: 'object'
});

new AWS.S3().getObject({Bucket: 'test'}, function(err, response) {
    assert.equal(response.an, 'object') // true
})

If you wish to use the sinon verification helpers, you can get run the function again to retrieve the same stub. So instead of doing:

AWS.S3.prototype.getObject.calledOnce()

you write:

mockAWSSinon('S3','getObject').calledOnce()

How does it actually work?

It stubs out AWS.Request.send, which is available. That stub then returns a mock AWS.Response object with the return value you have provided. This idea was copied from fakeaws, which works great except that I couldn't find a way to call verification methods on stubbed code, which this allows you to do.

Does it work?

I think so? It's a very quick project I'm using in literally two or three tests, so I wouldn't say it is thoroughly tested. If you try it and run into problems let me know.

FAQs

Package last updated on 25 Apr 2018

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.