2016-06-14 11 views
1

エラー404、500の正しいメッセージがRails UJS/ajaxモーダルに表示されていることを確認するための操作テストがあります。 「確かに私はドン:Capybara - タイムアウト(rspec/capybara/webkit/puffing-billy)のAjaxレスポンスコードを確認します

it " displays correct modal message appears correctly after relevant 500 xhr/ajax response is received" do 
    visit deal_page_path(deal)  
    proxy.stub("http://127.0.0.1:59533/deals/dealname/thrill").and_return(:code => 500) 
    first('a.button').click 
    wait_for_ajax 
    within('ul.messenger') do   
    expect(page).to have_content('So sorry, we had a bug, try again') 
    end 
end 

をしかし、私はこの問題は、タイムアウトがあるときに正しいメッセージが表示されることをテストするために失敗し、以下の例がある(私はAjaxのレスポンスをスタブにしpuffing billy gemを使用している以下のテストは合格します) rspecの中でスタブすると、ajaxによって送信されたレスポンスはタイムアウトになります。なぜなら、Chrome/webkitは実際にはヘッダーも500のような "簡単な"コードも送信しないからです(キャンセルされた状態)。

enter image description here

ノー成功を収めてみました:注

proxy.stub("http://127.0.0.1:59533/deals/dealname/thrill").and_return(:status => 'canceled')

proxy.stub("http://127.0.0.1:59533/deals/dealname/thrill").and_return(:status => '(canceled)')

:それは同じクロム/ WebKitの動作に関連していますかわからないが、私はこの記事を見た:What does status=canceled for a resource mean in Chrome Developer Tools?

答えて

1

timのhttpステータスコードはありませんタイムアウトは、そのタイムフレームではhttpステータスコードが返されていないことを意味しています。アップストリーム接続がタイムアウトした場合にプロキシによって返されるステータスコードがいくつかありますが、テストしているものとは異なると思っています。私はあなたのタイムアウト設定より長い時間がかかります。Rails - How to stub a certain response time for a stubbed/fake http or ajax response

関連する問題