I am trying to mock the .unless
function of express-jwt
and currently have this mock setup to compare a JWT with an admin and non admin. This worked perfect until we added .unless
and I am not sure the best way to approach the issue.
jest.mock("express-jwt", () => {
return options => {
return (req, res, next) => {
receivedToken = req.headers.authorization.substring(7);
req.user = { preferred_username: "tester" };
next();
};
};
});
That is the mock. I have tried moving that into a const and adding: mockFun.unless = jest.fn()
but to no avail.
Thanks
Edit:
One of the things I tried is below:
jest.mock("express-jwt", () => {
const mockFunc = () => {
return (req, res, next) => {
receivedToken = req.headers.authorization.substring(7);
req.user = { preferred_username: "tester" };
next();
};
};
mockFunc.unless = jest.fn();
return mockFunc
});
unless
is supposed to be a method on a function that jwt()
returns while currently it's a method on jwt
itself.
Should be:
jest.mock("express-jwt", () => {
const mockFunc = jest.fn((req, res, next) => {
...
});
mockFunc.unless = jest.fn((req, res, next) => {
...
});
return jest.fn(() => mockFunc);
});
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.