Package detail

@cloudcmd/stub

cloudcmd958MIT4.0.1

simplest sinon.stub alternative with diff support

sinon, stub, async, promise

readme

Stub NPM version Build Status Coverage Status

Simplest sinon.stub() alternative. With support of showing diff on calleddWith.

Install

npm i @cloudcmd/stub

API

stub([impl])

  • impl - stub implementation
const stub = require('@cloudcmd/stub');
const fn = stub();
// fn contains stubbed function

const asyncFn = stub(async () => {
    throw Error('hi');
});

// asyncFn contains stub async function

stub().returns([value])

const fn = stub().returns('hello');
fn();
// returns
'hello';

stub().throws([error])

const fn = stub().throws(Error('hello'));
fn();
// throws
Error('hello');

stub().rejects([error])

const fn = stub().rejects(Error('hello'));
await fn();
// rejects
Error('hello');

stub().resolves([values])

const fn = stub().resolves('hello');
await fn();
// resolves
'hello';

stub().calledWith([args])

const fn = stub();

fn('hello', 'world');

fn.calledWith('hello', 'world');
// returns true

stub().calledWithNew()

const fn = stub();

new fn();

fn.calledWithNew();
// returns
true;

stub().calledBefore(fn)

const fn1 = stub();
const fn2 = stub();

fn1();
fn2();

fn1.calledBefore(fn2);
// returns
true;

stub().calledAfter(fn)

const fn1 = stub();
const fn2 = stub();

fn1();
fn2();

fn2.calledAfter(fn1);
// returns
true;

stub().called

const fn = stub();

fn.called;
// returns
false;

fn();

fn.called;
// returns
true;

stub().callCount

const fn = stub();

fn.callCount;
// returns
0;

fn();

fn.callCount;
// returns
1;

stub().args

const fn = stub();

fn.args;
// returns
[];

fn(1);

fn.args;
// returns
[[1]];

stub().callId

Each stub has it callId, which can be used to determine order of stub calls:

const fn1 = stub();
const fn2 = stub();

fn1();
fn2();

fn1.callId;
// returns
1;

fn2.callId;
// returns
2;

isStub(fn)

Check if provided function is stub.

const {stub, isStub} = require('@cloudcmd/stub');
const fn = stub();

isStub(fn);
// returns
true;

isStub(() => {});
// returns
false;

Related

License

MIT