Comments (2)
I've re-written my use of rewiremock, and am able to get it to mock properly:
serverFile = rewiremock.proxy(() => require('../server/src/server'), {
'@data/utils/server-auth-client': {
authentication: authenticationMock,
authorization: authorizationMock
},
'@data/utils/queries-loader': {
loadFromFS: mockLoadFromFS
}
});
rewiremock.overrideEntryPoint(module);
Notice that loadFromFS isn't directly required by server.js
, so it was unclear i should be mocking it from there.
I do have another question - Is it possible to proxy(() => '../server/src/server'), {mockA}
inside before
function, and then mock other requires used by '../server/src/server' later during the test?
from rewiremock.
Hey, sorry for quite a late answer, but it's better late that never?
History note - rewiremock supports different "models" of work in order to help migration from other libraries existing before it. rewiremock.proxy
is mimicking proxyquire
interface.
In short proxy(file, overrides)
returns you a file
with overrides 🤷♂️ overrides. Depending on different flags it can be direct children only, or any transitive dependency required by this file anywhere.
If you want to mocks something else in the same test you need to do const newServer = .proxy
stuff again.
At the same time you can change rules a little bit and mock @data/utils/queries-loader
instead of '../server/src/server'
rewiremock('@data/utils/queries-loader').with({loadFromFS: mockLoadFromFS});
const serverFile = require('../server/src/server');
In this you can do the following trick
const loaderMock = rewiremock('@data/utils/queries-loader')
.callThrough() // pass to real file
.dynamic() // allow changes in the future
const serverFile = require('../server/src/server');
// update mocking in the future
loaderMock.with({loadFromFS: mockLoadFromFS});
Keep in mind dynamic
wraps module export in Proxy to be able to update it at runtime and some operations (assigning to a constant) can bypass it. So I cannot guarantee that it gonna work for every case.
from rewiremock.
Related Issues (20)
- Is it possible to make multiple hot mock updates? HOT 2
- Documentation Needed: jest.mock Equivalent HOT 1
- Please add a test for a module that returns a Class that gets newed up by the SUT HOT 1
- Something like cache problem HOT 3
- Testing a private function using rewiremock HOT 2
- Mocking non existent modules HOT 4
- how to use in webpack5
- Angular 11
- Usage inquiry ES6 HOT 1
- webpack.NamedModulesPlugin() has been deprecated HOT 12
- Configuration for Mocha/webpack5 HOT 1
- nodejs v18.3.0 Error: Rewiremock: there is no "parent module". Is there two HotModuleReplacementPlugins? HOT 3
- Typescript setup Error: Rewiremock: there is no "parent module". Is there two HotModuleReplacementPlugins?
- Invoking 'proxy' to generate test object but stub not invoked HOT 3
- Is it enable can execute like a jest.mock? HOT 3
- Setup for multiple test files HOT 4
- Does rewiremock work with ts-node? HOT 3
- Question: Mocking local variable in the scope of original module HOT 1
- Ts-node and rewiremock HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rewiremock.