我如何使用带有OAUTH2的facebook / google ...策略,使用Passport JS的超级Node.js服务器测试(集成测试)?

时间:2016-07-03 11:10:39

标签: node.js integration-testing passport.js supertest nock

我有一个Node Js应用程序,我正在使用supertest / superagent + nockjs集成测试我的应用程序。

我有一个问题,因为我想测试我的登录休息apis使用supertest来回复一个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:我可能在网址和状态上犯了一个错误,我不知道。 另外,我应该在哪里设置connection.sid的cookie?

如何修复/重写此代码以便能够对我的应用程序进行集成测试?

我也有兴趣使用passportjs存根/模拟,但我想要一个支持并且记录良好的库。

更新:我修复了模拟的配置文件对象的名称(responseMocked)

谢谢你, 斯特凡诺。

0 个答案:

没有答案