Oauth を使用して、AngularJS アプリでセッション ユーザーを管理しています。$resource オブジェクトで (GET /user/:user/projects のような REST 呼び出しを行うために) 使用されるため、私の Angular アプリはセッション ユーザーに関する情報を知る必要があります。このユーザー変数をグローバルかつ同期的にしたいので、 $resource または $http で非同期呼び出しを行ってユーザーを取得すると、このセッション ユーザーを必要とするコードに定型文が追加されます (ユーザー情報がサーバーから返されるのを待たなければならないため) )。
現在、私はこの問題を解決するこの汚いハックを使用しています: 私の index.ejs ファイルで (ユーザーが ejs でサーバー側にレンダリングされていることに注意してください)
<script type="text/javascript">
var session_user = <%- user %>;
</script>
そして、私はします
$rootScope.user = session_user
問題は、コントローラーを単体テストするときに、もちろん session_user が定義されていないことです。
この変数を返すサービスを作成できるのではないかと考えているsession_user
ので、モックをテストに使用できます。他のアイデアはありますか?この種の問題に対する推奨されるアプローチは何ですか?