如何为 require('passport-openidconnect').Strategy 节点模块编写 JEST 单元测试
我有 OIDC 实现的文件,如下所示。
const passport = require('passport');
const passportOidc = require('passport-openidconnect').Strategy;
module.exports.oktaOidcVerify = (req, res, next) => {
try {
const oidcStrategy = new passportOidc(
oidcOptions,
async (
issuer,
profile,
context,
idToken,
accessToken,
refreshToken,
done
) => {
try {
if (!profile.id) {
return done(
new Error('Profile not found'),
null
);
} else {
return done(null, profile, {
accessToken,
refreshToken
});
}
} catch (err) {
}
}
);
passport.use('oidc', oidcStrategy);
passport.serializeUser((user, next) => {
next(null, user);
});
passport.deserializeUser((obj, next) => {
next(null, obj);
});
next();
} catch (error) {
}
};
在我的 Express server.js 文件中,我添加为中间件,如下所示
app.use(passport.initialize());
app.use(oktaOidcVerify);
有没有办法通过传递示例请求来仅为“oktaOidcVerify”函数编写 JEST 单元测试用例?
I am having the file with OIDC implementation like below.
const passport = require('passport');
const passportOidc = require('passport-openidconnect').Strategy;
module.exports.oktaOidcVerify = (req, res, next) => {
try {
const oidcStrategy = new passportOidc(
oidcOptions,
async (
issuer,
profile,
context,
idToken,
accessToken,
refreshToken,
done
) => {
try {
if (!profile.id) {
return done(
new Error('Profile not found'),
null
);
} else {
return done(null, profile, {
accessToken,
refreshToken
});
}
} catch (err) {
}
}
);
passport.use('oidc', oidcStrategy);
passport.serializeUser((user, next) => {
next(null, user);
});
passport.deserializeUser((obj, next) => {
next(null, obj);
});
next();
} catch (error) {
}
};
In my express server.js file, I am adding as the middleware like below
app.use(passport.initialize());
app.use(oktaOidcVerify);
Is there a way to write JEST Unit Test case for only the "oktaOidcVerify" function by passing the sample request?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论