forked from External/greenlight
* <Implemented basic welcome email upon signup> * <Added config option to enable> * <Added verification link routing> * <Added views for verify/resend and reconfigured routes> * <Finished Verification System minus Rspec changes> * <Fixed code style> * <Modified dome rspec tests> * <Switched sample env back to default> * <Added test cases to increase code coverage> * <Added test_helper> * <Minor code changes> * <Added requested changes> * <Added requested changes> * <see if this fixes migration> * <see if this fixes migration> * <fixed migrations> * Delete .rake_tasks~ * Update _confirm_button.html.erb * Update _resend_button.html.erb * Update verify_email.html.erb * Update verify_email.text.erb * <Fixed bugs> * <Added validation of verification link and fixed some code style> * <Disabled updating email for omniauth>
This commit is contained in:
@ -27,6 +27,7 @@ def random_valid_user_params
|
||||
password: pass,
|
||||
password_confirmation: pass,
|
||||
accepted_terms: true,
|
||||
email_verified: true,
|
||||
},
|
||||
}
|
||||
end
|
||||
@ -40,6 +41,7 @@ describe UsersController, type: :controller do
|
||||
password: "pass",
|
||||
password_confirmation: "invalid",
|
||||
accepted_terms: false,
|
||||
email_verified: false,
|
||||
},
|
||||
}
|
||||
end
|
||||
@ -56,6 +58,7 @@ describe UsersController, type: :controller do
|
||||
describe "POST #create" do
|
||||
context "allow greenlight accounts" do
|
||||
before { allow(Rails.configuration).to receive(:allow_user_signup).and_return(true) }
|
||||
before { allow(Rails.configuration).to receive(:enable_email_verification).and_return(false) }
|
||||
|
||||
it "redirects to user room on successful create" do
|
||||
params = random_valid_user_params
|
||||
@ -65,6 +68,7 @@ describe UsersController, type: :controller do
|
||||
|
||||
expect(u).to_not be_nil
|
||||
expect(u.name).to eql(params[:user][:name])
|
||||
|
||||
expect(response).to redirect_to(room_path(u.main_room))
|
||||
end
|
||||
|
||||
@ -125,4 +129,57 @@ describe UsersController, type: :controller do
|
||||
expect(response).to render_template(:edit)
|
||||
end
|
||||
end
|
||||
|
||||
describe "GET | POST #resend" do
|
||||
before { allow(Rails.configuration).to receive(:allow_user_signup).and_return(true) }
|
||||
before { allow(Rails.configuration).to receive(:enable_email_verification).and_return(true) }
|
||||
|
||||
it "redirects to main room if verified" do
|
||||
params = random_valid_user_params
|
||||
post :create, params: params
|
||||
|
||||
u = User.find_by(name: params[:user][:name], email: params[:user][:email])
|
||||
u.email_verified = false
|
||||
|
||||
get :resend
|
||||
expect(response).to render_template(:verify)
|
||||
end
|
||||
|
||||
it "resend email upon click if unverified" do
|
||||
params = random_valid_user_params
|
||||
post :create, params: params
|
||||
|
||||
u = User.find_by(name: params[:user][:name], email: params[:user][:email])
|
||||
u.email_verified = false
|
||||
|
||||
expect { post :resend, params: { email_verified: false } }.to change { ActionMailer::Base.deliveries.count }.by(1)
|
||||
expect(response).to render_template(:verify)
|
||||
end
|
||||
end
|
||||
|
||||
describe "GET | POST #confirm" do
|
||||
before { allow(Rails.configuration).to receive(:allow_user_signup).and_return(true) }
|
||||
before { allow(Rails.configuration).to receive(:enable_email_verification).and_return(true) }
|
||||
|
||||
it "redirects to main room if already verified" do
|
||||
params = random_valid_user_params
|
||||
post :create, params: params
|
||||
|
||||
u = User.find_by(name: params[:user][:name], email: params[:user][:email])
|
||||
|
||||
post :confirm, params: { user_uid: u.uid, email_verified: true }
|
||||
expect(response).to redirect_to(room_path(u.main_room))
|
||||
end
|
||||
|
||||
it "renders confirmation pane if unverified" do
|
||||
params = random_valid_user_params
|
||||
post :create, params: params
|
||||
|
||||
u = User.find_by(name: params[:user][:name], email: params[:user][:email])
|
||||
u.email_verified = false
|
||||
|
||||
get :confirm, params: { user_uid: u.uid }
|
||||
expect(response).to render_template(:verify)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -28,6 +28,7 @@ FactoryBot.define do
|
||||
password { password }
|
||||
password_confirmation { password }
|
||||
accepted_terms { true }
|
||||
email_verified { true }
|
||||
end
|
||||
|
||||
factory :room do
|
||||
|
Reference in New Issue
Block a user