私は一定期間後にユーザを自動ログアウトするのにng2-idleを使用しています。私は私のappComponentコンストラクタでそれを初期化:私はthis.idle.watch()
使用して私のLoginComponentでそれを起動するログインに成功すると分度器テストのためのng2-idleを停止する
import {Idle, DEFAULT_INTERRUPTSOURCES} from '@ng-idle/core';
export class AppComponent {
constructor(
private idle:Idle) {
idle.setIdle(21600);
idle.setTimeout(1);
idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);
idle.onTimeout.subscribe(() => { this.logout(); });
};
(アイドルがコンストラクタ内に注入されます)。
これはすべて問題なく動作しますが、私の分度器テストを実行すると時間切れになるので、分断器がタイムアウトを待っているため、ng2-idleを6時間に設定してからしばらく時間がかかります。私はIdle.watch()
を使用して初期化しない場合
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
その後、テストが実行されます。私が何をしたいか
は私の分度器の設定ファイルにonPrepare
ブロックにIdle.stop();
を設定し、テストが私のonComplete
ブロック内に完了した後にIdle.watch();
にそれをリセットすることです。
私は分度器のconfファイル内var idle = require('@ng-idle/core');
を試してみましたが、それは次のように私をバックスロー:
ReferenceError: document is not defined
それでは、どのように私は分度器の設定ファイルにNG2-アイドル・モジュールを必要とすることができますか?
のためのオープン欠陥がある見つけました。 idle + timeoutの値がDEFAULT_TIMEOUT_INTERVALより小さい場合、テストは実行中であるように見えます。 – santon