我正在尝试根据超级测试库的请求,在 Express Router 中的一条路由上调用存根函数。我看到函数 foo 被正确调用,不幸的是它没有被我在测试中编写的存根函数替换。代码是用 ES6 编写的,我正在使用babel-register和babel-polyfill来使其工作。
我使用运行测试脚本
./node_modules/mocha/bin/mocha server --timeout 10000 --compilers js:babel-register --require babel-polyfill --recursive
Run Code Online (Sandbox Code Playgroud)
路由器.js
import {foo} from '../controller';
const router = new Router();
router.route(ROUTE).post(foo);
Run Code Online (Sandbox Code Playgroud)
控制器.js
export function foo(req, res) {
res.status(200).send({
ok: 'ok'
});
}
Run Code Online (Sandbox Code Playgroud)
测试.js
import request from 'supertest';
import sinon from 'sinon';
import {app} from 'app';
import * as controller from 'controller';
const agent = request.agent(app);
describe('Admin routes tests', () => {
it('Tests login admin route', async () => …Run Code Online (Sandbox Code Playgroud) 我试图将 msal.js 库(https://github.com/AzureAD/microsoft-authentication-library-for-js)与passport-azure-ad(https://github.com/AzureAD/passport-azure- ad ) 承载策略。
我的配置如下:Msal.js
{
authority: 'https://login.microsoftonline.com/<tennant>',
clientID: '<clientId>',
graphScopes: ['user.read', 'Group.Read.All'],
};
Run Code Online (Sandbox Code Playgroud)
护照-天蓝色广告
const config = {
identityMetadata: 'https://login.microsoftonline.com/<tennant>/v2.0/.well-known/openid-configuration',
clientID: '<clientId>',
validateIssuer: false,
passReqToCallback: false,
issuer: 'https://login.microsoftonline.com/<tennant>/v2.0',
audience: '<clientId>',
allowMultiAudiencesInToken: false,
loggingLevel:'info',
loggingNoPII: false,
};
Run Code Online (Sandbox Code Playgroud)
在前端,我通过登录流程和 auire 令牌使用
const token = await this.userAgentApplication.acquireTokenSilent(applicationConfig.graphScopes);
Run Code Online (Sandbox Code Playgroud)
然后我向受passport-azure-ad Bearer Strategy保护的端点发出请求并得到
authentication failed due to: In Strategy.prototype.jwtVerify: cannot verify token
Run Code Online (Sandbox Code Playgroud)
我也登录了图书馆,它说:
Error: invalid signature
Run Code Online (Sandbox Code Playgroud)
我的解码令牌如下所示:
{ header:
{ typ: 'JWT',
nonce:
'AQABAAAAAACEfexXxjamQb3OeGQ4GugvOOGFjNwsJMp-y1sPJ254AB4C4gW4sb4kOObzC5BvMpBM-89S8Ri5UvHxPIjpp9ZW408ZgJKLzb2hRWXkib2b7yAA',
alg: 'RS256',
x5t: '-sxMJMLCIDWMTPvZyJ6tx-CDxw0',
kid: '-sxMJMLCIDWMTPvZyJ6tx-CDxw0' …Run Code Online (Sandbox Code Playgroud)