Estoy usando rspec/capybara/idear para realizar pruebas de integración en una aplicación. Una de las características de la aplicación es el "Registro de la cuenta", que siempre se completa con una función de confirmación (es decir, registrarse, obtener un correo electrónico de confirmación, hacer clic en el enlace, validar la cuenta).Prueba de "Confirmación de cuenta" con rails/rspec/capybara/idear
require 'spec_helper'
describe "User Authentication" do
describe "New user" do
before(:each) do
@user = Factory.build(:user)
end
it "can confirm account by clicking on confirmation link" do
visit root_path
click_link "Register"
page.should have_content "Register for an account"
fill_in "user_email", :with => @user.email
fill_in "user_password", :with => @user.password
fill_in "user_password_confirmation", :with => @user.password
fill_in "user_first_name", :with => @user.first_name
fill_in "user_last_name", :with => @user.last_name
fill_in "user_city", :with => @user.city
fill_in "user_province", :with => @user.province
fill_in "user_country", :with => @user.country
fill_in "user_expertise", :with => @user.expertise
choose "user_experience_professional"
click_button "Go!"
last_email.to.should include(@user.email)
end
end
end
Éstos son mis ayudantes:
enlacemodule MailerMacros
def last_email
ActionMailer::Base.deliveries.last
end
end
La confirmación se encuentra en el correo electrónico HTML generado. Sería maravilloso poder hacer algo como esto (asumiendo "Confirmar mi cuenta") es el enlace a la validación de la cuenta.
last_email.body.find_link("Confirm My Account").click_link
¿Alguien tiene alguna sugerencia para poder identificar los enlaces en un correo electrónico que podría entrar en un request_spec?
Gracias
di cuenta de que esto es una cuestión de antigüedad. – PriyankaK
Todavía me ayudó. Ponme en la gema email_spec, ¡que es increíble! También puede usar 'click_first_link_in_email email' en email_spec – mattvv
@mattvv Intenté '' 'click_first_link_in_email''', pero no funcionó para mí.Gracias por la respuesta! – PriyankaK