0

私はそのようなバグを持っています。ここに私のコードです:Capybara click_linkがうまくいきません

it "shows places sorted by date of creation" do 
    click_button(I18n.t("models.places.actions.index.sort_by")) 
    click_link(I18n.t("models.places.actions.index.date_of_creation")) 

    sorted_places_names = places.map(&:name).reverse 
    link_names = all("a.place-link").map(&:text) 

    expect(link_names).to eq(sorted_places_names) 
end 

そして、私の問題は、のparamsを送信する必要があり、ここでそのクリックのリンクです:子孫ために作成の日付順の場所、と 「?by_created_at: true」とコントローラ応答。 私の問題は、capybaraがこのリンクをクリックしたときに、GETリクエストにパスのみがあり、paramsが必要なくなったときです。私はここでポルターガイストを使用しています。

また、私は、このようなテストを持っている:

it "shows orders today" do 
    today_order.customer.reputations << create(:reputation, place: place) 

    visit place_statistics_loyalty_path(place) 
    click_link(I18n.t("statistics.loyalty.today")) 

    expect(page).to have_selector("#order_#{today_order.id}") 
end 

それは同様の動作をテストします。それは正常に動作しますが、ここではjsを使用していません。 javascriptドライバに問題がありますか?おかげさまで 申し訳ありませんが、それは私の最初の質問です。そのメソッドを使用して、キーを設定して、動作するはずのリンクをクリックして進め

https://github.com/teampoltergeist/poltergeist#sending-keys

+0

sleep 2を置くことによって問題である、私の問題は、そのFactoryGirlにあったかどうかをテストすることができ、同一のcreated_atフィールド –

答えて

0

は何をする探していると、ドキュメントにここに示すように、ポルターガイストの「send_key」メソッドを使用しています。

+0

でレコードを生成ありがとうしかし、バグがそのファクトリー・ガールにレコードを生成しました。同じcreated_atフィールドで、私のテストは失敗します。 –

0

js: trueまたはdriver: :poltergeistのメタデータがないため、実際にその試験にポルターガイストを使用していますか?ポルターガイストを使用せず、実際にrack_testドライバを使用していた場合、JSは実行されず、表示されている動作が表示される可能性があります。

ポルターガイストドライバを実際に使用している場合は、click_buttonが非同期であるため競合状態が発生する可能性があります。リンクのクリックが実際に発生する前にby_created_atパラメータが設定されない可能性があります。それは皆をありがとうclick_buttonclick_link通話

+0

ありがとうございますが、Factory Girlが同じcreated_atフィールドを持つレコードを生成し、それが私のテストに失敗したというバグがありました。 –

関連する問題