Search code examples
javascriptunit-testingsinon

How do I stub a chain of methods in Sinon?


I know how to use stub to replace one function.

sandbox.stub(Cars, "findOne",
            () => {return car1 });

But now I have a line in my function I want to test that I need to stub that looks like this

Cars.find().fetch()

So there is a chain of function here and I'm unsure what I need to do. How do I stub "find" to return something that I can use to stub "fetch"?


Solution

  • Try this:

    sandbox.stub(Cars, "find", () => {
        return {
            fetch: sinon.stub().returns(anything);
        };
    });