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

Asterisk AGI Python Script to Dialplan does not work -

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

python - Read npy file directly from S3 StreamingBody -