Node Js アプリケーションがあり、supertest/superagent + nockjs を使用してアプリの統合テストを行っています。
facebook/google/github などの FAKE PROFILE RESPONSE + トークンで応答するためにスーパーテストを使用してログイン REST API をテストしたいので、問題があります。(とても単純なので、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 とステータスを間違えたのかもしれませんが、わかりません。また、connection.sid の Cookie をどこに設定すればよいですか?
このコードを修正/書き直して、アプリケーションの統合テストを行うにはどうすればよいですか?
また、passportjs のスタブ/モックを使用することに興味がありますが、ライブラリがサポートされ、十分に文書化されている必要があります。
更新: モック化されたプロファイル オブジェクトの名前を修正しました (responseMocked)
ありがとう、ステファノ。