Ember でテストに合格する方法を理解するのにいくつかの問題に直面しています。
問題は、プロジェクトでNProgressを使用しようとしているのですが、テストに合格できません。
この例に従ってミキシングを作成していますが、テスト以外はすべて正常に機能しています。
それが私が作成したミキシングです:
import Ember from 'ember';
NProgress.configure({ showSpinner: true });
export default Ember.Mixin.create({
actions: {
loading() {
if(!Ember.$('.nprogress-busy').length) {
if(Ember.$('#content').length) {
Ember.$('#content').removeClass('fadeIn');
Ember.$('#content').addClass('animated fadeOut');
}
if(Ember.$('#page-content-wrapper').length) {
Ember.$('#page-content-wrapper').removeClass('fadeIn');
Ember.$('#page-content-wrapper').addClass('animated fadeOut');
}
NProgress.start();
}
this.router.one('didTransition', function () {
window.scrollTo(0, 0);
setTimeout(function(){
if(Ember.$('#content').length) {
Ember.$('#content').removeClass('fadeOut');
Ember.$('#content').addClass('animated fadeIn');
}
if(Ember.$('#page-content-wrapper').length) {
Ember.$('#page-content-wrapper').removeClass('fadeOut');
Ember.$('#page-content-wrapper').addClass('animated fadeIn');
}
}, 1000);
NProgress.done();
return true;
});
},
error() {
NProgress.done();
return true;
}
}
});
そして、それが失敗しているものです:
not ok 80 PhantomJS 2.0 - JSHint - mixins: mixins/loading-indicator.js should pass jshint
---
actual: >
false
expected: >
true
message: >
mixins/loading-indicator.js should pass jshint.
mixins/loading-indicator.js: line 2, col 1, 'NProgress' is not defined.
mixins/loading-indicator.js: line 16, col 11, 'NProgress' is not defined.
mixins/loading-indicator.js: line 30, col 11, 'NProgress' is not defined.
mixins/loading-indicator.js: line 35, col 9, 'NProgress' is not defined.
4 errors
Log: |
...
ご覧のとおり、アプリケーションで問題なく NProgress を使用できますが、テストが失敗する場所で NProgress を宣言していないためです。
どうすればそれを渡すことができるかについて誰かが考えを持っていますか?
ember にも同様のコンポーネントがあることは知っていますが、NProgress を使用することにしました。これは、いつ開始したいか、いつ終了したいかを設定できるためです。アニメーションの時間を設定する必要があるプログレス バーは使いたくありませんでした。
前もって感謝します!