require 'test_helper' class DeviseHelperTest < ActionDispatch::IntegrationTest setup do model_labels = { models: { user: "utilisateur" } } 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: model_labels, mongoid: model_labels } I18n.locale = 'fr' end teardown do I18n.locale = 'en' 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 # Dirty tracking behavior prevents email validations from being applied: # https://github.com/mongoid/mongoid/issues/756 (pending "Fails on Mongoid < 2.1"; break) if defined?(Mongoid) && Mongoid::VERSION.to_f < 2.1 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