1.3.2 • Published 6 years ago

mock-aws-sinon v1.3.2

Weekly downloads
601
License
ISC
Repository
github
Last release
6 years ago

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.

1.3.2

6 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago