verificacion valido seguridad recibir puedo porque por para olvide numero llega llamada ingresar electronico debes correo confirmar confirmacion codigo celular ruby-on-rails rspec devise controller registration

ruby on rails - valido - Probar la prueba del controlador de registro Rspec que falla en la actualización como si estuviera intentando confirmar la dirección de correo electrónico



porque no me llega el codigo de verificacion de facebook a mi celular (1)

Tengo la siguiente ruta:

devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks", :registrations => ''users/registrations'', :sessions => "users/sessions" }

y la siguiente prueba de controlador (registrations_controller_spec.rb):

require File.dirname(__FILE__) + ''/../spec_helper'' describe Users::RegistrationsController do include Devise::TestHelpers fixtures :all render_views before(:each) do @request.env["devise.mapping"] = Devise.mappings[:user] end describe "POST ''create''" do describe "success" do before(:each) do @attr = { :email => "[email protected]", :password => "foobar01", :password_confirmation => "foobar01", :display_name => "New User" } end it "should create a user" do lambda do post :create, :user => @attr response.should redirect_to(root_path) end.should change(User, :count).by(1) end end end describe "PUT ''update''" do before(:each) do @user = FactoryGirl.create(:user) @user.confirm! # or set a confirmed_at inside the factory. Only necessary if you are using the confirmable module sign_in @user end describe "Success" do it "should change the user''s display name" do @attr = { :email => @user.email, :display_name => "Test", :current_password => @user.password } put :update, :id => @user, :user => @attr puts @user.errors.messages @user.display_name.should == @attr[:display_name] end end end end

Ahora, cuando ejecuto las especificaciones de rspec, obtengo (lo que creo) resultados extraños:

Los pases de prueba "debe crear un usuario". El número de usuarios aumentó en 1.

Sin embargo, mi "debería cambiar el nombre para mostrar del usuario" falla de la siguiente manera:

1) Users::RegistrationsController PUT ''update'' Success should change the user''s display name Failure/Error: @user.display_name.should == @attr[:display_name] expected: "Test" got: "Boyd" (using ==)

Y lo más extraño es que mi declaración:

puts @user.errors.messages

Representa el siguiente mensaje:

{:email=>["was already confirmed, please try signing in"]}

¿Que esta pasando? ¡El usuario ha iniciado sesión! Esto se demuestra por el hecho de que el error Rspec devolvió el nombre de visualización de "Boyd". ¿Y por qué se muestra un mensaje parece estar relacionado con la confirmación de la cuenta en lugar de actualizar los detalles de un usuario?

¡Cualquier ayuda sería muy apreciada!


Esto funciona. Gracias holtkampw por ver lo que no era! Puse un código extra allí solo para verificarlo y todo está bien.

it "should change the user''s display name" do subject.current_user.should_not be_nil @attr = { :email => @user.email, :display_name => "Test", :current_password => @user.password } puts "Old display name: " + subject.current_user.display_name put :update, :id => subject.current_user, :user => @attr subject.current_user.reload response.should redirect_to(root_path) subject.current_user.display_name == @attr[:display_name] puts "New display name: " + subject.current_user.display_name end