Rails | Cucumber | Capybara | click_button generates GET request -




i have cucumber scenario following steps:

def create_admin   @admin ||= factorygirl.create(:admin) end  def sign_in   visit '/admins/sign_in'   fill_in "email", with: @admin.email   fill_in "password", with: @admin.password   save_and_open_page   click_button "sign in" end  ### given ### given /^i exist admin$/   create_admin end  ### when ### when /^i sign in valid credentials$/   sign_in end   ### ### /^i see sign out link$/   page.should have_link "sign out" end 

this test log these actions:

started "/admins/sign_in" 127.0.0.1 @ 2017-08-23 11:10:14 +0200 processing devise::sessionscontroller#new html   rendering devise/sessions/new.html.erb within layouts/application   rendered devise/shared/_links.html.erb (1.0ms)   rendered devise/sessions/new.html.erb within layouts/application (130.1ms) completed 200 ok in 361ms (views: 348.5ms | activerecord: 0.0ms)  started "/admins/sign_in?admin[email]=admin%40ca.coml&admin[password]=[filtered]&admin[remember_me]=0&commit=sign+in" 127.0.0.1 @ 2017-08-23 11:10:14 +0200 processing devise::sessionscontroller#new html   parameters: {"admin"=>{"email"=>"admin@ca.com", "password"=>"[filtered]", "remember_me"=>"0"}, "commit"=>"sign in"}   rendering devise/sessions/new.html.erb within layouts/application   rendered devise/shared/_links.html.erb (0.3ms)   rendered devise/sessions/new.html.erb within layouts/application (3.2ms) completed 200 ok in 10ms (views: 6.6ms | activerecord: 0.0ms) 

i'm confused fact clicking sign in button seems trigger request. since working in development:

started "/admins/sign_in" 127.0.0.1 @ 2017-08-23 11:08:26 +0200 processing devise::sessionscontroller#new html   rendering devise/sessions/new.html.erb within layouts/application   rendered devise/shared/_links.html.erb (1.1ms)   rendered devise/sessions/new.html.erb within layouts/application (4.2ms) completed 200 ok in 37ms (views: 35.6ms | activerecord: 0.0ms)   started post "/admins/sign_in" 127.0.0.1 @ 2017-08-23 11:08:28 +0200 processing devise::sessionscontroller#create html   parameters: {"utf8"=>"✓", "authenticity_token"=>"nvsrkgj33ez1pw6fzgqhofis/9/d/ls3cshez4sbzyx2fx/8mmmbfyb1c1vqz84ka48zyhocu3mllkxlad0jla==", "admin"=>{"email"=>"admin@ca.nl", "password"=>"[filtered]", "remember_me"=>"0"}, "commit"=>"sign in"}   admin load (0.7ms)  select  "admins".* "admins" "admins"."email" = $1 order "admins"."id" asc limit $2  [["email", "admin@ca.nl"], ["limit", 1]]    (0.3ms)  begin   sql (0.4ms)  update "admins" set "current_sign_in_at" = $1, "sign_in_count" = $2, "updated_at" = $3 "admins"."id" = $4  [["current_sign_in_at", "2017-08-23 09:08:28.326296"], ["sign_in_count", 2], ["updated_at", "2017-08-23 09:08:28.327254"], ["id", 2]]    (7.5ms)  commit redirected http://localhost:3000/ completed 302 found in 181ms (activerecord: 8.8ms) 

where did go wrong?

i'm guessing you're using 'rack_test' driver (as opposed 1 of js enabled drivers run actual browser) , either haven't required 'capybara/rails' tells 'rack_test' driver data-method attribute , use set post vs get, or form written require js.

if neither of these case please post html of form





wiki

Comments

Popular posts from this blog

python - Read npy file directly from S3 StreamingBody -

Asterisk AGI Python Script to Dialplan does not work -

kotlin - Out-projected type in generic interface prohibits the use of metod with generic parameter -