我有一个 Node Js 应用程序,我正在使用 supertest/superagent + nockjs 集成测试我的应用程序。
我有一个问题,因为我想使用 supertest 来测试我的登录休息 api,以使用 FAKE PROFILE RESPONSE + 令牌进行回复,例如 facebook/google/github 等。(我对 LocalStrategy 不感兴趣,因为它非常简单)
我怎样才能做到这一点?
我正在尝试使用 GitHub,但我写的这段代码(不工作)绝对错误,可能非常愚蠢,没有任何意义......这是一个实验 XD。
nock('https://github.com/login/oauth')
.get('/authorize?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fapi%2Fauth%2Fgithub%2Fcallback&scope=user%3Aemail&client_id=XXXXXXXXXXXXXXXXXXXX')
.reply(302,undefined,
{
location : "http://localhost:3000/api/auth/github/callback?code=ab7f9823f03071209b26"
}
)
.get('http://localhost:3000/api/auth/github/callback?code=ab7f9823f03071209b26')
.reply(200, responseMocked);
PS:可能我在url和status上弄错了,我不知道。另外,我应该在哪里设置 connection.sid 的 cookie?
如何修复/重写此代码以便能够对我的应用程序进行集成测试?
我也有兴趣使用 passportjs 存根/模拟,但我想要一个支持且有据可查的库。
更新:我修复了模拟配置文件对象的名称(responseMocked)
谢谢你,斯特凡诺。