2016-08-11 11 views
0

私はシングルサインオン(SSO)のKeycloakを使用して、カスタムリバースプロキシの背後にあるAngularJS/Javascriptシングルページアプリケーション(SAP)を開発しています。Angular JS投影のwindow.locationにユニットテストの割り当てを行うにはどうすればよいですか?

ユーザーが他のいくつかのことをやった後、アプリケーションがこのアプリケーションから、しかし、許可、すべてのアプリケーションからだけではなく、ユーザーが完全にログアウトであることを確認するために

window.location = reverseProxyHost + '/logout'; 

を実行します、「ログアウト」をクリックしますKeycloak SSOによって。我々は、この行が実行できるようにする場合は

、カルマは、あなたのテストのいくつかは完全なページのリロードをした

を不平を言います!

このエラーは、テストスイート全体で失敗します。

window.locationオブジェクトの値をテストのコンテキストから上書きできるとは思われません。私はlocalContextオブジェクトを作成し、with'use strict'と互換性がないため、テストは失敗します

with(localContext){ 

しようとすると

どのように私はラインが期待された結果で実行されていることを確認することができますか?

答えて

1

角度からの$windowと、window.location = "newlocation.com"の代わりの$window.location.replaceとを使用してみてください。 それでは、このように模倣することができます。

var $window = { location: { replace: jasmine.createSpy('replace') } }; 
    module('app', function ($provide) { 
    $provide.value('$window', $window); 
    }); 
+0

有望そうです。 tommorowを試みます。ありがとう! –

+0

これはうまくいった! :-) –

関連する問題