diff --git a/app/helpers/devise_helper.rb b/app/helpers/devise_helper.rb index 7902752a..cfcbc821 100644 --- a/app/helpers/devise_helper.rb +++ b/app/helpers/devise_helper.rb @@ -11,7 +11,7 @@ module DeviseHelper messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join sentence = I18n.t("errors.messages.not_saved", :count => resource.errors.count, - :resource => resource_name) + :resource => resource.class.model_name.human.downcase) html = <<-HTML
diff --git a/test/helpers/devise_helper_test.rb b/test/helpers/devise_helper_test.rb new file mode 100644 index 00000000..b81e1f4c --- /dev/null +++ b/test/helpers/devise_helper_test.rb @@ -0,0 +1,41 @@ +require 'test_helper' + +class DeviseHelperTest < ActionController::IntegrationTest + setup do + I18n.backend.store_translations :fr, + { + :errors => { :messages => { :not_saved => { + :one => "Erreur lors de l'enregistrement de '%{resource}': 1 erreur.", + :other => "Erreur lors de l'enregistrement de '%{resource}': %{count} erreurs." + } } }, + :activerecord => { :models => { :user => "utilisateur" } } + } + + I18n.locale = 'fr' + end + + test 'test errors.messages.not_saved with single error from i18n' do + + get new_user_registration_path + + fill_in 'password', :with => 'new_user123' + fill_in 'password confirmation', :with => 'new_user123' + click_button 'Sign up' + + assert_have_selector '#error_explanation' + assert_contain "Erreur lors de l'enregistrement de 'utilisateur': 1 erreur" + end + + test 'test errors.messages.not_saved with multiple errors from i18n' do + get new_user_registration_path + + fill_in 'email', :with => 'invalid_email' + fill_in 'password', :with => 'new_user123' + fill_in 'password confirmation', :with => 'new_user321' + click_button 'Sign up' + + assert_have_selector '#error_explanation' + assert_contain "Erreur lors de l'enregistrement de 'utilisateur': 2 erreurs" + end + +end \ No newline at end of file