2016-05-10 4 views
1

私はrecords_pathページにこのリンクを持っている:カピバラとリモートリンク

link_to "CLICK HERE", edit_record_path(record), remote: true 

コントローラ:

def edit 
    puts request.format # Just to show you part of the issue 
end 

そして、クリックされたとき、それはedit.js.coffeeを実行し、レンダリングレコードを編集するためのモーダルです。

素晴らしいです。 カピバラの問題はです。それはRecordsControllerに編集方法を実行する(文脈から真、それが動作します:私はテストを実行すると

context 'when on records list page' do 
    before { visit records_path } 

    context 'when clicking on "CLICK HERE"', js: true do 
    before { click_link('CLICK HERE') } 

    it 'shows the record name' do 
     expect(page).to have_content record.name 
    end 
    end 
end 

、それは誤り上げる:

Capybara::ElementNotFound: Unable to find link "CLICK HERE"

をしかし、私はJSを削除する場合)、印刷形式は、jsではなく、となります。 edit.htmlもありません。edit.js.coffeeがあります。これはテストでレンダリングする必要があります。

私は間違っていますか?リンクにremote:true小道具があり、テストにはjs:trueがあります。

+0

'page.html'を出力し、実際にページ上に何が表示されているのかを確認するには、実際にクリックするリンクがレンダリングされていますか? –

+0

@TomWalpoleはい、レコードがレンダリングされ、すべて正常に動作します。 –

+0

'save_and_open_page'やcapybara_screenshot gemで何が起きているのかを確認できます。また、あなたのCapybaraとCapybara-webkitの設定は関連しているかもしれません。 – jfornoff

答えて

0

セットアップでは、実際にレコードを作成しません。私はこれがあなたの問題の原因だと仮定しています。編集するレコードがない場合、edit_recordリンクは表示されません。私は間違っているかもしれませんが、あなたがペーストしたものから、これが原因だと思います。

+0

を参照してください。レコードですが、作成しましたが、例に追加しませんでした –

関連する問題