Searched for a while before raising the question.
File structure:
.
|____lib
| |____bar.js
| |____baz.js
| |____foo.js
|____test
| |____bar.js
| |____baz.js
| |____foo.js
Use case:
With respect to the above file structure, ./lib/foo.js
requires ./lib/bar.js
, ./lib/bar.js
requires ./lib/baz.js
.
While unit testing ./lib/foo.js
via ./test/foo.js
, I would like to mock ./lib/bar.js
, so that, I am only concerned with ./lib/foo.js
.
Once the tests in ./test/foo.js
are over I would like to reset/un-mock ./lib/bar.js
.
While unit testing ./lib/bar.js
via ./test/bar.js
, I would like to mock ./lib/baz.js
, so that, I am only concerned with ./lib/baz.js
.
Once the tests in ./test/foo.js
are over I would like to reset/un-mock ./lib/baz.js
.
So on and so forth.
Or in other words, I would like to mock the dependencies and reset as and when required, in the test file.
Most likely mocking several times in the test file and reseting a after all the test are over in a test file.
Or may be I can control the local mock, with some file level closure variables
Below mentioned StackOverflow posts have excellent discussion but I could not come to any conclusion.
I came across the following modules
and few others.
Among the above, looks like mockery addresses my use-case, mainly reset/un-mock the mocked dependency.
How to achieve the same in proxyquire?
Is there any other module which addresses the stated use case?