Merge pull request #1666 from consul/users-without-email
Users without email
This commit is contained in:
@@ -6,7 +6,13 @@ class Management::UsersController < Management::BaseController
|
|||||||
|
|
||||||
def create
|
def create
|
||||||
@user = User.new(user_params)
|
@user = User.new(user_params)
|
||||||
@user.skip_password_validation = true
|
|
||||||
|
if @user.email.blank?
|
||||||
|
user_without_email
|
||||||
|
else
|
||||||
|
user_with_email
|
||||||
|
end
|
||||||
|
|
||||||
@user.terms_of_service = '1'
|
@user.terms_of_service = '1'
|
||||||
@user.residence_verified_at = Time.current
|
@user.residence_verified_at = Time.current
|
||||||
@user.verified_at = Time.current
|
@user.verified_at = Time.current
|
||||||
@@ -40,4 +46,24 @@ class Management::UsersController < Management::BaseController
|
|||||||
session[:document_number] = nil
|
session[:document_number] = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def user_without_email
|
||||||
|
new_password = "aAbcdeEfghiJkmnpqrstuUvwxyz23456789$!".split('').sample(10).join('')
|
||||||
|
@user.password = new_password
|
||||||
|
@user.password_confirmation = new_password
|
||||||
|
|
||||||
|
@user.email = nil
|
||||||
|
@user.confirmed_at = Time.current
|
||||||
|
|
||||||
|
@user.newsletter = false
|
||||||
|
@user.email_on_proposal_notification = false
|
||||||
|
@user.email_digest = false
|
||||||
|
@user.email_on_direct_message = false
|
||||||
|
@user.email_on_comment = false
|
||||||
|
@user.email_on_comment_reply = false
|
||||||
|
end
|
||||||
|
|
||||||
|
def user_with_email
|
||||||
|
@user.skip_password_validation = true
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
class Mailer < ApplicationMailer
|
class Mailer < ApplicationMailer
|
||||||
|
after_action :prevent_delivery_to_users_without_email
|
||||||
|
|
||||||
helper :text_with_links
|
helper :text_with_links
|
||||||
helper :mailer
|
helper :mailer
|
||||||
helper :users
|
helper :users
|
||||||
@@ -6,8 +8,10 @@ class Mailer < ApplicationMailer
|
|||||||
def comment(comment)
|
def comment(comment)
|
||||||
@comment = comment
|
@comment = comment
|
||||||
@commentable = comment.commentable
|
@commentable = comment.commentable
|
||||||
|
@email_to = @commentable.author.email
|
||||||
|
|
||||||
with_user(@commentable.author) do
|
with_user(@commentable.author) do
|
||||||
mail(to: @commentable.author.email, subject: t('mailers.comment.subject', commentable: t("activerecord.models.#{@commentable.class.name.underscore}", count: 1).downcase)) if @commentable.present? && @commentable.author.present?
|
mail(to: @email_to, subject: t('mailers.comment.subject', commentable: t("activerecord.models.#{@commentable.class.name.underscore}", count: 1).downcase)) if @commentable.present? && @commentable.author.present?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -16,96 +20,108 @@ class Mailer < ApplicationMailer
|
|||||||
@commentable = @reply.commentable
|
@commentable = @reply.commentable
|
||||||
parent = Comment.find(@reply.parent_id)
|
parent = Comment.find(@reply.parent_id)
|
||||||
@recipient = parent.author
|
@recipient = parent.author
|
||||||
|
@email_to = @recipient.email
|
||||||
|
|
||||||
with_user(@recipient) do
|
with_user(@recipient) do
|
||||||
mail(to: @recipient.email, subject: t('mailers.reply.subject')) if @commentable.present? && @recipient.present?
|
mail(to: @email_to, subject: t('mailers.reply.subject')) if @commentable.present? && @recipient.present?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def email_verification(user, recipient, token, document_type, document_number)
|
def email_verification(user, recipient, token, document_type, document_number)
|
||||||
@user = user
|
@user = user
|
||||||
@recipient = recipient
|
@email_to = recipient
|
||||||
@token = token
|
@token = token
|
||||||
@document_type = document_type
|
@document_type = document_type
|
||||||
@document_number = document_number
|
@document_number = document_number
|
||||||
|
|
||||||
with_user(user) do
|
with_user(user) do
|
||||||
mail(to: @recipient, subject: t('mailers.email_verification.subject'))
|
mail(to: @email_to, subject: t('mailers.email_verification.subject'))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def unfeasible_spending_proposal(spending_proposal)
|
def unfeasible_spending_proposal(spending_proposal)
|
||||||
@spending_proposal = spending_proposal
|
@spending_proposal = spending_proposal
|
||||||
@author = spending_proposal.author
|
@author = spending_proposal.author
|
||||||
|
@email_to = @author.email
|
||||||
|
|
||||||
with_user(@author) do
|
with_user(@author) do
|
||||||
mail(to: @author.email, subject: t('mailers.unfeasible_spending_proposal.subject', code: @spending_proposal.code))
|
mail(to: @email_to, subject: t('mailers.unfeasible_spending_proposal.subject', code: @spending_proposal.code))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def direct_message_for_receiver(direct_message)
|
def direct_message_for_receiver(direct_message)
|
||||||
@direct_message = direct_message
|
@direct_message = direct_message
|
||||||
@receiver = @direct_message.receiver
|
@receiver = @direct_message.receiver
|
||||||
|
@email_to = @receiver.email
|
||||||
|
|
||||||
with_user(@receiver) do
|
with_user(@receiver) do
|
||||||
mail(to: @receiver.email, subject: t('mailers.direct_message_for_receiver.subject'))
|
mail(to: @email_to, subject: t('mailers.direct_message_for_receiver.subject'))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def direct_message_for_sender(direct_message)
|
def direct_message_for_sender(direct_message)
|
||||||
@direct_message = direct_message
|
@direct_message = direct_message
|
||||||
@sender = @direct_message.sender
|
@sender = @direct_message.sender
|
||||||
|
@email_to = @sender.email
|
||||||
|
|
||||||
with_user(@sender) do
|
with_user(@sender) do
|
||||||
mail(to: @sender.email, subject: t('mailers.direct_message_for_sender.subject'))
|
mail(to: @email_to, subject: t('mailers.direct_message_for_sender.subject'))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def proposal_notification_digest(user, notifications)
|
def proposal_notification_digest(user, notifications)
|
||||||
@notifications = notifications
|
@notifications = notifications
|
||||||
|
@email_to = user.email
|
||||||
|
|
||||||
with_user(user) do
|
with_user(user) do
|
||||||
mail(to: user.email, subject: t('mailers.proposal_notification_digest.title', org_name: Setting['org_name']))
|
mail(to: @email_to, subject: t('mailers.proposal_notification_digest.title', org_name: Setting['org_name']))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def user_invite(email)
|
def user_invite(email)
|
||||||
|
@email_to = email
|
||||||
|
|
||||||
I18n.with_locale(I18n.default_locale) do
|
I18n.with_locale(I18n.default_locale) do
|
||||||
mail(to: email, subject: t('mailers.user_invite.subject', org_name: Setting["org_name"]))
|
mail(to: @email_to, subject: t('mailers.user_invite.subject', org_name: Setting["org_name"]))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def budget_investment_created(investment)
|
def budget_investment_created(investment)
|
||||||
@investment = investment
|
@investment = investment
|
||||||
|
@email_to = @investment.author.email
|
||||||
|
|
||||||
with_user(@investment.author) do
|
with_user(@investment.author) do
|
||||||
mail(to: @investment.author.email, subject: t('mailers.budget_investment_created.subject'))
|
mail(to: @email_to, subject: t('mailers.budget_investment_created.subject'))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def budget_investment_unfeasible(investment)
|
def budget_investment_unfeasible(investment)
|
||||||
@investment = investment
|
@investment = investment
|
||||||
@author = investment.author
|
@author = investment.author
|
||||||
|
@email_to = @author.email
|
||||||
|
|
||||||
with_user(@author) do
|
with_user(@author) do
|
||||||
mail(to: @author.email, subject: t('mailers.budget_investment_unfeasible.subject', code: @investment.code))
|
mail(to: @email_to, subject: t('mailers.budget_investment_unfeasible.subject', code: @investment.code))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def budget_investment_selected(investment)
|
def budget_investment_selected(investment)
|
||||||
@investment = investment
|
@investment = investment
|
||||||
@author = investment.author
|
@author = investment.author
|
||||||
|
@email_to = @author.email
|
||||||
|
|
||||||
with_user(@author) do
|
with_user(@author) do
|
||||||
mail(to: @author.email, subject: t('mailers.budget_investment_selected.subject', code: @investment.code))
|
mail(to: @email_to, subject: t('mailers.budget_investment_selected.subject', code: @investment.code))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def budget_investment_unselected(investment)
|
def budget_investment_unselected(investment)
|
||||||
@investment = investment
|
@investment = investment
|
||||||
@author = investment.author
|
@author = investment.author
|
||||||
|
@email_to = @author.email
|
||||||
|
|
||||||
with_user(@author) do
|
with_user(@author) do
|
||||||
mail(to: @author.email, subject: t('mailers.budget_investment_unselected.subject', code: @investment.code))
|
mail(to: @email_to, subject: t('mailers.budget_investment_unselected.subject', code: @investment.code))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -116,4 +132,11 @@ class Mailer < ApplicationMailer
|
|||||||
block.call
|
block.call
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def prevent_delivery_to_users_without_email
|
||||||
|
if @email_to.blank?
|
||||||
|
mail.perform_deliveries = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -247,7 +247,7 @@ class User < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def email_required?
|
def email_required?
|
||||||
!erased?
|
!erased? && unverified?
|
||||||
end
|
end
|
||||||
|
|
||||||
def locale
|
def locale
|
||||||
|
|||||||
@@ -40,52 +40,54 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h2><%= t("account.show.notifications")%></h2>
|
<% if @account.email.present? %>
|
||||||
|
<h2><%= t("account.show.notifications")%></h2>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<%= f.label :email_on_comment do %>
|
<%= f.label :email_on_comment do %>
|
||||||
<%= f.check_box :email_on_comment, title: t('account.show.email_on_comment_label'), label: false %>
|
<%= f.check_box :email_on_comment, title: t('account.show.email_on_comment_label'), label: false %>
|
||||||
<span class="checkbox">
|
<span class="checkbox">
|
||||||
<%= t("account.show.email_on_comment_label") %>
|
<%= t("account.show.email_on_comment_label") %>
|
||||||
</span>
|
</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<%= f.label :email_on_comment_reply do %>
|
<%= f.label :email_on_comment_reply do %>
|
||||||
<%= f.check_box :email_on_comment_reply, title: t('account.show.email_on_comment_reply_label'), label: false %>
|
<%= f.check_box :email_on_comment_reply, title: t('account.show.email_on_comment_reply_label'), label: false %>
|
||||||
<span class="checkbox">
|
<span class="checkbox">
|
||||||
<%= t("account.show.email_on_comment_reply_label") %>
|
<%= t("account.show.email_on_comment_reply_label") %>
|
||||||
</span>
|
</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<%= f.label :email_newsletter_subscribed do %>
|
<%= f.label :email_newsletter_subscribed do %>
|
||||||
<%= f.check_box :newsletter, title: t('account.show.subscription_to_website_newsletter_label'), label: false %>
|
<%= f.check_box :newsletter, title: t('account.show.subscription_to_website_newsletter_label'), label: false %>
|
||||||
<span class="checkbox">
|
<span class="checkbox">
|
||||||
<%= t("account.show.subscription_to_website_newsletter_label") %>
|
<%= t("account.show.subscription_to_website_newsletter_label") %>
|
||||||
</span>
|
</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<%= f.label :email_digest do %>
|
<%= f.label :email_digest do %>
|
||||||
<%= f.check_box :email_digest, title: t('account.show.email_digest_label'), label: false %>
|
<%= f.check_box :email_digest, title: t('account.show.email_digest_label'), label: false %>
|
||||||
<span class="checkbox">
|
<span class="checkbox">
|
||||||
<%= t("account.show.email_digest_label") %>
|
<%= t("account.show.email_digest_label") %>
|
||||||
</span>
|
</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<%= f.label :email_on_direct_message do %>
|
<%= f.label :email_on_direct_message do %>
|
||||||
<%= f.check_box :email_on_direct_message, title: t('account.show.email_on_direct_message_label'), label: false %>
|
<%= f.check_box :email_on_direct_message, title: t('account.show.email_on_direct_message_label'), label: false %>
|
||||||
<span class="checkbox">
|
<span class="checkbox">
|
||||||
<%= t("account.show.email_on_direct_message_label") %>
|
<%= t("account.show.email_on_direct_message_label") %>
|
||||||
</span>
|
</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<% if @account.official_level == 1 %>
|
<% if @account.official_level == 1 %>
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
label: t('management.username_label'),
|
label: t('management.username_label'),
|
||||||
placeholder: t('management.username_label') %>
|
placeholder: t('management.username_label') %>
|
||||||
<%= f.text_field :email,
|
<%= f.text_field :email,
|
||||||
label: t('management.email_label'),
|
label: t('management.users.email_optional_label'),
|
||||||
placeholder: t('management.email_label') %>
|
placeholder: t('management.email_label') %>
|
||||||
<div class="date-of-birth">
|
<div class="date-of-birth">
|
||||||
<%= f.label t("management.date_of_birth") %>
|
<%= f.label t("management.date_of_birth") %>
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
<p><%= t("management.users.create_user_success_html", email: @user.email) %></p>
|
<% if @user.email.blank? %>
|
||||||
|
<p><%= t("management.users.autogenerated_password_html", password: @user.password) %></p>
|
||||||
|
<% else %>
|
||||||
|
<p><%= t("management.users.create_user_success_html", email: @user.email) %></p>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<%= render 'management/user_permissions',
|
<%= render 'management/user_permissions',
|
||||||
message: t("management.document_verifications.in_census_has_following_permissions"),
|
message: t("management.document_verifications.in_census_has_following_permissions"),
|
||||||
|
|||||||
@@ -114,6 +114,8 @@ en:
|
|||||||
create_user_info: 'We will create an account with the following data:'
|
create_user_info: 'We will create an account with the following data:'
|
||||||
create_user_submit: Create user
|
create_user_submit: Create user
|
||||||
create_user_success_html: We have sent an email to the email address <b>%{email}</b> in order to verify that it belongs to this user. It contains a link they have to click. Then they will have to set their access password before being able to log in to the website
|
create_user_success_html: We have sent an email to the email address <b>%{email}</b> in order to verify that it belongs to this user. It contains a link they have to click. Then they will have to set their access password before being able to log in to the website
|
||||||
|
autogenerated_password_html: "Autogenerated password is <b>%{password}</b>, you can change it in the 'My account' section of the web"
|
||||||
|
email_optional_label: Email (optional)
|
||||||
erased_notice: User account deleted.
|
erased_notice: User account deleted.
|
||||||
erased_by_manager: "Deleted by manager: %{manager}"
|
erased_by_manager: "Deleted by manager: %{manager}"
|
||||||
erase_account_link: Delete user
|
erase_account_link: Delete user
|
||||||
|
|||||||
@@ -114,6 +114,8 @@ es:
|
|||||||
create_user_info: 'Procedemos a crear un usuario con la siguiente información:'
|
create_user_info: 'Procedemos a crear un usuario con la siguiente información:'
|
||||||
create_user_submit: Crear usuario
|
create_user_submit: Crear usuario
|
||||||
create_user_success_html: Hemos enviado un correo electrónico a <b>%{email}</b> para verificar que es suya. El correo enviado contiene un link que el usuario deberá pulsar. Entonces podrá seleccionar una clave de acceso, y entrar en la web de participación.
|
create_user_success_html: Hemos enviado un correo electrónico a <b>%{email}</b> para verificar que es suya. El correo enviado contiene un link que el usuario deberá pulsar. Entonces podrá seleccionar una clave de acceso, y entrar en la web de participación.
|
||||||
|
autogenerated_password_html: "Se ha asignado la contraseña <b>%{password}</b> a este usuario. Puede modificarla desde el apartado 'Mi cuenta' de la web."
|
||||||
|
email_optional_label: "Email (recomendado pero opcional)"
|
||||||
erased_notice: Cuenta de usuario borrada.
|
erased_notice: Cuenta de usuario borrada.
|
||||||
erased_by_manager: "Borrada por el manager: %{manager}"
|
erased_by_manager: "Borrada por el manager: %{manager}"
|
||||||
erase_account_link: Borrar cuenta
|
erase_account_link: Borrar cuenta
|
||||||
|
|||||||
@@ -42,6 +42,9 @@ FactoryGirl.define do
|
|||||||
confirmed_hide_at Time.current
|
confirmed_hide_at Time.current
|
||||||
end
|
end
|
||||||
|
|
||||||
|
trait :verified do
|
||||||
|
verified_at Time.current
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
factory :identity do
|
factory :identity do
|
||||||
|
|||||||
@@ -370,4 +370,15 @@ feature 'Emails' do
|
|||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "Users without email" do
|
||||||
|
scenario "should not receive emails", :js do
|
||||||
|
user = create(:user, :verified, email_on_comment: true)
|
||||||
|
proposal = create(:proposal, author: user)
|
||||||
|
user.update(email: nil)
|
||||||
|
comment_on(proposal)
|
||||||
|
|
||||||
|
expect { open_last_email }.to raise_error "No email has been sent!"
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ feature 'Managed User' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario "User is created as level three from scratch" do
|
scenario "User is created with email as level three from scratch" do
|
||||||
login_as_manager
|
login_as_manager
|
||||||
|
|
||||||
visit management_document_verifications_path
|
visit management_document_verifications_path
|
||||||
@@ -101,6 +101,7 @@ feature 'Managed User' do
|
|||||||
click_button 'Create user'
|
click_button 'Create user'
|
||||||
|
|
||||||
expect(page).to have_content "We have sent an email"
|
expect(page).to have_content "We have sent an email"
|
||||||
|
expect(page).to_not have_content "Autogenerated password is"
|
||||||
|
|
||||||
user = User.last
|
user = User.last
|
||||||
within(".account-info") do
|
within(".account-info") do
|
||||||
@@ -110,6 +111,33 @@ feature 'Managed User' do
|
|||||||
expect(page).to have_content "#{user.document_number}"
|
expect(page).to have_content "#{user.document_number}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario "User is created without email as level three from scratch" do
|
||||||
|
login_as_manager
|
||||||
|
|
||||||
|
visit management_document_verifications_path
|
||||||
|
fill_in 'document_verification_document_number', with: '12345678Z'
|
||||||
|
click_button 'Check'
|
||||||
|
|
||||||
|
expect(page).to have_content "Please introduce the email used on the account"
|
||||||
|
|
||||||
|
click_link 'Create a new account'
|
||||||
|
|
||||||
|
fill_in 'user_username', with: 'peppa'
|
||||||
|
fill_in 'user_email', with: ''
|
||||||
|
|
||||||
|
click_button 'Create user'
|
||||||
|
|
||||||
|
expect(page).to_not have_content "We have sent an email"
|
||||||
|
expect(page).to have_content "Autogenerated password is"
|
||||||
|
|
||||||
|
user = User.last
|
||||||
|
within(".account-info") do
|
||||||
|
expect(page).to have_content "Identified as"
|
||||||
|
expect(page).to have_content "#{user.username}"
|
||||||
|
expect(page).to have_content "#{user.document_number}"
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario "Close the currently managed user session" do
|
scenario "Close the currently managed user session" do
|
||||||
|
|||||||
@@ -6,8 +6,7 @@ feature 'Users' do
|
|||||||
login_as_manager
|
login_as_manager
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario 'Create a level 3 user from scratch' do
|
scenario 'Create a level 3 user with email from scratch' do
|
||||||
|
|
||||||
visit management_document_verifications_path
|
visit management_document_verifications_path
|
||||||
fill_in 'document_verification_document_number', with: '12345678Z'
|
fill_in 'document_verification_document_number', with: '12345678Z'
|
||||||
click_button 'Check'
|
click_button 'Check'
|
||||||
@@ -23,6 +22,7 @@ feature 'Users' do
|
|||||||
click_button 'Create user'
|
click_button 'Create user'
|
||||||
|
|
||||||
expect(page).to have_content "We have sent an email"
|
expect(page).to have_content "We have sent an email"
|
||||||
|
expect(page).to_not have_content "Autogenerated password is"
|
||||||
|
|
||||||
user = User.find_by_email('pepe@gmail.com')
|
user = User.find_by_email('pepe@gmail.com')
|
||||||
|
|
||||||
@@ -46,6 +46,32 @@ feature 'Users' do
|
|||||||
expect(page).to have_content "Your account has been confirmed."
|
expect(page).to have_content "Your account has been confirmed."
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario 'Create a level 3 user without email from scratch' do
|
||||||
|
visit management_document_verifications_path
|
||||||
|
fill_in 'document_verification_document_number', with: '12345678Z'
|
||||||
|
click_button 'Check'
|
||||||
|
|
||||||
|
expect(page).to have_content "Please introduce the email used on the account"
|
||||||
|
|
||||||
|
click_link 'Create a new account'
|
||||||
|
|
||||||
|
fill_in 'user_username', with: 'Kelly Sue'
|
||||||
|
fill_in 'user_email', with: ''
|
||||||
|
select_date '31-December-1980', from: 'user_date_of_birth'
|
||||||
|
|
||||||
|
click_button 'Create user'
|
||||||
|
|
||||||
|
expect(page).to_not have_content "We have sent an email"
|
||||||
|
expect(page).to have_content "Autogenerated password is"
|
||||||
|
|
||||||
|
user = User.find_by_username('Kelly Sue')
|
||||||
|
|
||||||
|
expect(user).to be_level_three_verified
|
||||||
|
expect(user).to be_residence_verified
|
||||||
|
expect(user).to be_confirmed
|
||||||
|
expect(user.date_of_birth).to have_content (Date.new(1980,12,31))
|
||||||
|
end
|
||||||
|
|
||||||
scenario 'Delete a level 2 user account from document verification page', :js do
|
scenario 'Delete a level 2 user account from document verification page', :js do
|
||||||
level_2_user = create(:user, :level_two, document_number: "12345678Z")
|
level_2_user = create(:user, :level_two, document_number: "12345678Z")
|
||||||
|
|
||||||
|
|||||||
@@ -632,4 +632,29 @@ describe User do
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "email_required?" do
|
||||||
|
it "is true for regular users" do
|
||||||
|
expect(subject.email_required?).to eq(true)
|
||||||
|
expect(create(:user, :hidden).email_required?).to eq(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "is false for erased users" do
|
||||||
|
user = create(:user)
|
||||||
|
user.erase
|
||||||
|
user.reload
|
||||||
|
|
||||||
|
expect(user.email_required?).to eq(false)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "is false for verified users with no email" do
|
||||||
|
user = create(:user,
|
||||||
|
username: "Lois",
|
||||||
|
email: "",
|
||||||
|
verified_at: Time.current)
|
||||||
|
|
||||||
|
expect(user).to be_valid
|
||||||
|
expect(user.email_required?).to eq(false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user