クラス「date-time-field」と隠しフィールドdatetimeを持つ2つのテキストフィールド、日付と時刻があります。日付または時刻が変更されるたびにJavaScriptを使用して2つを結合し、それをdatetime非表示フィールドに保存しようとしています。これがjavascriptです(coffeescriptから変換されたもの):
$('.date-time-field').change(function() {
var date, time;
date = $('#date').val();
time = $('#time').val();
return $('#start_time').val(date + " " + time);
});
私のキュウリ テストには、Firefox ウィンドウで実行されるように @javascript タグが含まれています。テストが開いている Firefox ウィンドウにフォーカスを置いている限り成功しますが、開いている別のウィンドウにフォーカスを移動すると、変更イベントが発生しないため失敗します。ユーザーが奇妙なことをした場合、これが本番環境で再現されるのではないかと心配しています。
ステップ定義はフォームに記入しています:
When /^I create a valid event$/ do
fill_in :name, :with => "Blackbeard's modest event for modest folk"
select Tier.first.number.to_s, :from => 'event_tier_id'
select Venue.first.name, :from => 'event_venue_id'
fill_in 'date', :with => "05/03/2012"
fill_in 'time', :with => " 08:45"
click_button 'Save'
end
おそらく変更に加えて、ぼかしのような別のイベントを使用する必要がありますか、それとも本番環境では問題にならないので、テストに wait_for 呼び出しを入れるだけですか?