Note that there are some explanatory texts on larger screens.

plurals
  1. POCapybara test failing with AJAX response
    primarykey
    data
    text
    <p>I have the following Capybara test, which should click through and change the content of a comment. The issue is that the content form is loaded into a modal that pops up upon clicking the edit button, and my modal isn't being rendered in the test. (This functionality works in the app). save_and_open_page opens a page containing just the json object.</p> <p>feature_spec.rb</p> <pre><code>require 'spec_helper' describe 'Edit comment' do let(:commented_post) { FactoryGirl.create(:post_with_comments) } describe "when current_user is the comment's author" do it 'should edit the comment content' do visit post_path(commented_post) within ("#comment-#{commented_post.comments.first.id}") do click_on "edit" end Capybara.default_wait_time = 15 save_and_open_page fill_in 'comment_content', with: 'No, this is the best comment' click_on 'Edit Comment' expect(page).to have_content('No, this is the best comment') end end end </code></pre> <p>post.js</p> <pre><code>var EditForm = { init: function() { $('.get-edit-comment').on('ajax:success', this.showEditModal); }, showEditModal: function(e, data) { e.preventDefault(); $('.reveal-modal').html(data.edit_template); $('.reveal-modal').foundation('reveal', 'open'); } } $(document).ready( function() { EditForm.init(); }); </code></pre> <p>comments_controller.rb</p> <pre><code> def edit @post = Post.find_by_id(params[:post_id]) @comment = Comment.find_by_id(params[:id]) render :json =&gt; { edit_template: render_to_string(:partial =&gt; 'comments/form', :locals =&gt; {post: @post, comment: @comment}) } end def update Comment.find_by_id(params[:id]).update(comment_params) redirect_to post_path(params[:post_id]) end </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload