Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jest createSpyObj

Tags:

jestjs

With Chai, you can create a spy object as follows:

chai.spy.object([ 'push', 'pop' ]);

With jasmine, you can use:

jasmine.createSpyObj('tape', ['play', 'pause', 'stop', 'rewind']);

What's the Jest equivalent?

Context: I am currently migrating a (typescript) Jasmine tests to (typescript) Jest. The migration guide is basically useless in this case: https://facebook.github.io/jest/docs/migration-guide.html As with any relatively new tech, there's nothing that can easily be found in the docs about this.

like image 534
David Avatar asked Jul 25 '17 13:07

David


1 Answers

I've written a very quick createSpyObj function for jest, to support the old project. Basically ported from Jasmine's implementation.

export const createSpyObj = (baseName, methodNames): { [key: string]: Mock<any> } => {
    let obj: any = {};

    for (let i = 0; i < methodNames.length; i++) {
        obj[methodNames[i]] = jest.fn();
    }

    return obj;
};
like image 65
David Avatar answered Oct 05 '22 23:10

David