1

残り火受け入れテストで「変更」イベントをトリガーするのに問題があります。

観測された「値」プロパティを持つレンジスライダーがあります。変更時に、スライダーは、スライダーの値に基づいてパラメーターを使用して URL を更新する API 要求を送信します。

jQuery を使用してテストでスライダーの値を変更できます。これにより、UI のスライダーが正常に更新されます...

$("#slider").val(3.0).change();

...しかし、変更イベントは発生しないため、API 呼び出しはありません。この同じセットアップは、「クリック」または「フィルイン」を使用してリクエストをトリガーできる同様のテストで正常に機能します。

実行ループと triggerEvent ヘルパー (以下を参照) の両方を使用してみましたが、うまくいきません。

    // 1. using the run loop -- updates UI, but no change event fired

    Ember.run(function() {
      $("#gpa-slider").val(3.0).change();
    });
    andThen(() => {
      assert.equal(currentURL(), "/athletes?gpa=3.0")
    });


    //2. using triggerEvent helper -- 
    //   doesn't update UI, slider value, or trigger change event

    triggerEvent('#gpa-slider', 'change', {value: 3.8} )

    andThen(() => {
      assert.equal(currentURL(), "/athletes?gpa=3.0")
    });

triggerEvent() の設定が間違っていますか? これを処理するより良い方法はありますか?

4

1 に答える 1

0

スライダー ハンドルをクリックすることで、変更イベントを発生させることができました。

click(Ember.$('.rangeslider__handle'));
andThen(() => {
  assert.equal(currentURL(), '/athletes?gpa=3.0');
});

triggerEvent() ヘルパーで何が間違っていたのかはまだわかりませんが、これは将来、貧しい魂を助けるかもしれません。

于 2016-01-05T19:30:36.180 に答える