1.0.6 • Published 2 years ago

sinon-spy-utils v1.0.6

Weekly downloads
3
License
MIT
Repository
github
Last release
2 years ago

sinon-spy-utils NPM Version Build Status Coverage Status dependencies Status devDependencies Status

This package is a collection of util functions to make your life easier when using Sinon.js. At the moment, it contains 3 functions: Mock (creating fake objects), SpyAndDo (scoped spy) and StubAndDo (scoped stub).

Installation

Node Installation

npm install sinon-spy-utils

You can then SpyUtils = require('sinon-spy-utils') or import { Mock } from 'sinon-spy-utils'.

Browser Installation

Use the minified UMD build in the dist folder: here. It exports a global window.SinonSpyUtils when imported as a <script> tag.

Usage

Every code snippet will be presented in 3 different styles: Node.js require, Node.js import and Browser Javascript (with required HTML <script>s).

Mock

This function creates a mock object containing functions corresponding to the provided names.

  • require:
  var Mock = require('sinon-spy-utils').Mock;
  ...
  var fakeUser = Mock('getName', 'getAvatar', 'getAge');
  • import:
  import { Mock } from 'sinon-spy-utils';
  ...
  const fakeUser = Mock('getName', 'getAvatar', 'getAge');
  • browser:
  <script src="sinon.min.js"></script>
  <script src="sinon-spy-utils.min.js"></script>
  ...
  var fakeUser = SinonSpyUtils.Mock('getName', 'getAvatar', 'getAge');

SpyAndDo

This function will spy the listed functions of the provided object and call the provided function. The spied functions will be restored whatever happens.

  • require:
  var SpyAndDo = require('sinon-spy-utils').SpyAndDo;
  ...
  SpyAndDo(console, 'error', 'log', function (spies) {
    functionThatCallsConsoleLog(); // your function
    expect(spies.log).to.have.been.called; // your test (here using sinon + chai style)
  });
  • import:
  import { SpyAndDo } from 'sinon-spy-utils';
  ...
  SpyAndDo(console, 'error', 'log', (spies) => {
    functionThatCallsConsoleLog(); // your function
    expect(spies.log).to.have.been.called; // your test (here using sinon + chai style)
  });
  • browser:
  <script src="sinon.min.js"></script>
  <script src="sinon-spy-utils.min.js"></script>
  ...
  SinonSpyUtils.SpyAndDo(console, 'error', 'log', function (spies) {
    functionThatCallsConsoleLog(); // your function
    expect(spies.log).to.have.been.called; // your test (here using sinon + chai style)
  });

StubAndDo

This function will stub the listed functions of the provided object and call the provided function. The stubbed functions will be restored whatever happens.

  • require:
  var StubAndDo = require('sinon-spy-utils').StubAndDo;
  ...
  StubAndDo(console, 'error', 'log', function (spies) {
    functionThatCallsConsoleLog(); // your function
    expect(spies.log).to.have.been.called; // your test (here using sinon + chai style)
  });
  • import:
  import { StubAndDo } from 'sinon-spy-utils';
  ...
  StubAndDo(console, 'error', 'log', (spies) => {
    functionThatCallsConsoleLog(); // your function
    expect(spies.log).to.have.been.called; // your test (here using sinon + chai style)
  });
  • browser:
  <script src="sinon.min.js"></script>
  <script src="sinon-spy-utils.min.js"></script>
  ...
  SinonSpyUtils.StubAndDo(console, 'error', 'log', function (spies) {
    functionThatCallsConsoleLog(); // your function
    expect(spies.log).to.have.been.called; // your test (here using sinon + chai style)
  });

License

MIT, Copyright (c) 2017-2020 Louis Brunner

1.0.6

2 years ago

1.0.5

3 years ago

1.0.4

4 years ago

1.0.3

5 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago