0
コントローラーに私はEmber.run.later
ループを持っています。これはタイマーを継続的に更新します。受け入れテストで継続Ember.run.laterの間に受け入れテストをクリックしてください
run: function() {
const lastResumeTimestamp = this.get("lastResumeTimestamp");
this.clearTimer();
this.set('timerId', Ember.run.later(this, function() {
// update the timer
// ...
this.run();
}, 100));
},
私はこのループを一時停止すべき、ボタンをクリックします:
test('I want to start/pause new activity', function(assert) {
visit('/');
andThen(function() {
assert.equal(find('.duration', activityBuilderSelector).text(), "0");
click('.start-activity-button', activityBuilderSelector);
// -->> start continuous Ember.run.later.loop, see: application cortroller
waitFor(assert, function() {
const val = find('.duration', activityBuilderSelector).text()
assert.notEqual(val, "0", `notEqual 0 (${val})`);
assert.equal(find('.title', activityBuilderSelector).text(), "New activity", "there should be activity title");
// -->> here test waiting because of run.later loop
click('.pause-activity-button', activityBuilderSelector);
});
});
andThen(function() {
//click('.resume-activity-button', activityBuilderSelector);
});
});
が、クリックする前に、テストの一時停止とは、ループの停止を待っています。
ループ中にこのクリックをトリガして、テストを続行するにはどうすれば停止できますか?ここで
は、この問題を明らかにする少し回転因子である: https://ember-twiddle.com/a72ca75527ec4cdc0c3d1c9ebcb421e0?openFiles=tests.acceptance.my-acceptance-test.js%2C