如何解决存根 express-jwt用于身份验证的中间件库
在这里,我正在努力尝试存根直接从 express-jwt 调用的中间件。这是我的 auth.middleware.ts
文件:
import jwt from 'express-jwt';
import jwks from 'jwks-rsa';
const isAuth = jwt({
secret: jwks.expressJwtSecret({
cache : true,rateLimit : true,jwksRequestsPerMinute : 5,jwksUri : `https://${some.domain.name}/.well-kNown/jwks.json`,}),audience : '',issuer : `https://${some.audience.name}/`,algorithms : [ 'RS256' ],});
export default [ auth ];
当我需要使用它时,只需按如下方式调用它:
import isAuth from './auth.middleware';
app.get('/',isAuth);
问题是当我想存根这个中间件旨在验证每个用户的身份验证时:
//service.spec.ts
import sinon from 'sinon';
import { expect } from 'chai';
import request from 'supertest';
import app from 'my/path/to/app';
import mocks from 'my/path/to/mocks';
import mockTokens from 'my/path/to/mockTokens';
import isAuth from 'my/path/to/auth.middleware';
describe('Users endpoint',function() {
const sandBox = sinon.createSandBox();
describe.only('Get by id',function() {
before('Initial setup',async () => {
const authentication = sandBox.stub(isAuth);
authentication[0].callsFake(function(options: any): any {
console.log('FAKE AUTH!');
return (res,req,next) => next();
});
});
it('When I am trying to make something nothing works lol',function(done) {
// Arrange
const userId = '1234567^';
// Act
request(app)
.get(`/endpoint/to/test/${userId}`)
.set('Authorization',`Bearer ${mockTokens.no_permissions}`)
.end((err,res) => {
if (err) {
return done(err);
}
// Assert
expect(res.body.data).to.be.eql(mocks.getById.expectedResponse);
return done();
});
});
});
});
希望有人能帮助我,为什么 auth
方法没有像我想要的那样存根。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。