From 7ac574d9a9bb20684921150419cb3e559e9aad99 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 17 Nov 2016 12:29:11 +0100 Subject: [PATCH] Fix #148 - Devise mailer fixed, test spec added so it won't slip past again --- app/mailers/user_mailer.rb | 6 ++-- .../auth/registrations_controller_spec.rb | 31 +++++++++++++++++++ .../auth/sessions_controller_spec.rb | 2 ++ 3 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 spec/controllers/auth/registrations_controller_spec.rb diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index 5c086768da..e3ca39b3a5 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -4,7 +4,7 @@ class UserMailer < Devise::Mailer default from: ENV.fetch('SMTP_FROM_ADDRESS') { 'notifications@localhost' } layout 'mailer' - def confirmation_instructions(user, token) + def confirmation_instructions(user, token, _opts = {}) @resource = user @token = token @@ -13,7 +13,7 @@ class UserMailer < Devise::Mailer end end - def reset_password_instructions(user, token) + def reset_password_instructions(user, token, _opts = {}) @resource = user @token = token @@ -22,7 +22,7 @@ class UserMailer < Devise::Mailer end end - def password_change(user) + def password_change(user, _opts = {}) @resource = user I18n.with_locale(@resource.locale || I18n.default_locale) do diff --git a/spec/controllers/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb new file mode 100644 index 0000000000..f7ebebbcb8 --- /dev/null +++ b/spec/controllers/auth/registrations_controller_spec.rb @@ -0,0 +1,31 @@ +require 'rails_helper' + +RSpec.describe Auth::RegistrationsController, type: :controller do + render_views + + describe 'GET #new' do + before do + request.env["devise.mapping"] = Devise.mappings[:user] + end + + it 'returns http success' do + get :new + expect(response).to have_http_status(:success) + end + end + + describe 'POST #create' do + before do + request.env["devise.mapping"] = Devise.mappings[:user] + post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678' } } + end + + it 'redirects to home page' do + expect(response).to redirect_to root_path + end + + it 'creates user' do + expect(User.find_by(email: 'test@example.com')).to_not be_nil + end + end +end diff --git a/spec/controllers/auth/sessions_controller_spec.rb b/spec/controllers/auth/sessions_controller_spec.rb index 9dbbb5d453..c2a1fbe910 100644 --- a/spec/controllers/auth/sessions_controller_spec.rb +++ b/spec/controllers/auth/sessions_controller_spec.rb @@ -1,6 +1,8 @@ require 'rails_helper' RSpec.describe Auth::SessionsController, type: :controller do + render_views + describe 'GET #new' do before do request.env["devise.mapping"] = Devise.mappings[:user]