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

答えて

0

は、私はちょうど発見し、私はテストヘルパーを使用しないことによってこれを行うことができます。

$('.pause-activity-button', activityBuilderSelector).click();

が、私はこのわかりませんこれを処理する適切な方法です。

関連する問題