I am using the local strategy of Passport.js to authenticate users for my API. I am writing tests for this API, and I need a way of mocking Passport.js in the tests to simulate an authenticated/unauthenticated user hitting the API.
What would be the most efficient way of doing this?
A bit late, but I did mock passport.js in a project and created a gist with a basic howto. Should work fine (I used passport version ~0.1.16).
you can use the http request objects in node and automate rest requests against your API the same way as it would occur in the real world. Look at node supertest module.
One possible option: in your test setup, you can
passport.use
a mock strategy under the local name:passport.use('local', new MockStrategy());
Implement MockStrategy to pass the request, or whatever your test needs.