diff --git a/app/mailers/delete_domain_mailer.rb b/app/mailers/delete_domain_mailer.rb
new file mode 100644
index 000000000..4a8f4f7c4
--- /dev/null
+++ b/app/mailers/delete_domain_mailer.rb
@@ -0,0 +1,18 @@
+class DeleteDomainMailer < ApplicationMailer
+ include Que::Mailer
+
+ def pending(domain:, old_registrant:)
+ @domain = DomainPresenter.new(domain: domain, view: view_context)
+ @registrar = RegistrarPresenter.new(registrar: domain.registrar, view: view_context)
+ @verification_url = verification_url(domain)
+
+ subject = default_i18n_subject(domain_name: domain.name)
+ mail(to: old_registrant.email, subject: subject)
+ end
+
+ private
+
+ def verification_url(domain)
+ registrant_domain_delete_confirm_url(domain, token: domain.registrant_verification_token)
+ end
+end
diff --git a/app/mailers/domain_mailer.rb b/app/mailers/domain_mailer.rb
index b6cd9c309..915fffa57 100644
--- a/app/mailers/domain_mailer.rb
+++ b/app/mailers/domain_mailer.rb
@@ -1,21 +1,6 @@
class DomainMailer < ApplicationMailer
include Que::Mailer
- def pending_update_request_for_old_registrant(domain:, registrant:)
- @domain = DomainPresenter.new(domain: domain, view: view_context)
- @registrar = RegistrarPresenter.new(registrar: domain.registrar, view: view_context)
- @registrant = RegistrantPresenter.new(registrant: registrant, view: view_context)
- @verification_url = registrant_domain_update_confirm_url(domain, token: domain.registrant_verification_token)
-
- subject = default_i18n_subject(domain_name: domain.name)
- mail(to: registrant.email, subject: subject)
- end
-
- def pending_update_notification_for_new_registrant(params)
- compose_from(params)
- end
-
-
def registrant_updated_notification_for_new_registrant(domain_id, old_registrant_id, new_registrant_id, should_deliver)
@domain = Domain.find_by(id: domain_id)
return unless @domain
@@ -45,23 +30,6 @@ class DomainMailer < ApplicationMailer
name: @domain.name)} [#{@domain.name}]")
end
- def pending_update_rejected_notification_for_new_registrant(params)
- compose_from(params)
- end
-
- def pending_update_expired_notification_for_new_registrant(params)
- compose_from(params)
- end
-
- def pending_deleted(domain:, registrant:)
- @domain = DomainPresenter.new(domain: domain, view: view_context)
- @registrar = RegistrarPresenter.new(registrar: domain.registrar, view: view_context)
- @verification_url = registrant_domain_delete_confirm_url(domain, token: domain.registrant_verification_token)
-
- subject = default_i18n_subject(domain_name: domain.name)
- mail(to: registrant.email, subject: subject)
- end
-
def pending_delete_rejected_notification(domain_id, should_deliver)
@domain = Domain.find_by(id: domain_id)
return unless @domain
diff --git a/app/mailers/registrant_change_mailer.rb b/app/mailers/registrant_change_mailer.rb
new file mode 100644
index 000000000..a29f3aee1
--- /dev/null
+++ b/app/mailers/registrant_change_mailer.rb
@@ -0,0 +1,45 @@
+class RegistrantChangeMailer < ApplicationMailer
+ include Que::Mailer
+
+ def confirmation(domain:, registrant:)
+ @domain = DomainPresenter.new(domain: domain, view: view_context)
+ @registrar = RegistrarPresenter.new(registrar: domain.registrar, view: view_context)
+ @registrant = RegistrantPresenter.new(registrant: registrant, view: view_context)
+ @verification_url = confirm_url(domain)
+
+ subject = default_i18n_subject(domain_name: domain.name)
+ mail(to: registrant.email, subject: subject)
+ end
+
+ def pending_update_notification_for_new_registrant(params)
+ compose_from(params)
+ end
+
+ def registrant_updated_notification_for_old_registrant(domain_id, old_registrant_id, new_registrant_id, should_deliver)
+ @domain = Domain.find_by(id: domain_id)
+ return unless @domain
+ return if delivery_off?(@domain, should_deliver)
+
+ @old_registrant = Registrant.find(old_registrant_id)
+ @new_registrant = Registrant.find(new_registrant_id)
+
+ return if whitelist_blocked?(@old_registrant.email)
+ mail(to: format(@old_registrant.email),
+ subject: "#{I18n.t(:registrant_updated_notification_for_old_registrant_subject,
+ name: @domain.name)} [#{@domain.name}]")
+ end
+
+ def pending_update_rejected_notification_for_new_registrant(params)
+ compose_from(params)
+ end
+
+ def pending_update_expired_notification_for_new_registrant(params)
+ compose_from(params)
+ end
+
+ private
+
+ def confirm_url(domain)
+ registrant_domain_update_confirm_url(domain, token: domain.registrant_verification_token)
+ end
+end
diff --git a/app/models/domain.rb b/app/models/domain.rb
index a9d5147a6..c97877047 100644
--- a/app/models/domain.rb
+++ b/app/models/domain.rb
@@ -379,6 +379,9 @@ class Domain < ActiveRecord::Base
new_registrant_email = registrant.email
new_registrant_name = registrant.name
+ current_registrant = Registrant.find(registrant_id_was)
+ RegistrantChangeMailer.confirmation(domain: self, current_registrant: current_registrant).deliver
+
send_mail :pending_update_request_for_old_registrant
send_mail :pending_update_notification_for_new_registrant
@@ -441,8 +444,8 @@ class Domain < ActiveRecord::Base
pending_delete_confirmation!
save(validate: false) # should check if this did succeed
- previous_registrant = Registrant.find(registrant_id_was)
- DomainMailer.pending_deleted(domain: self, registrant: previous_registrant).deliver
+ old_registrant = Registrant.find(registrant_id_was)
+ DeleteDomainMailer.pending(domain: self, old_registrant: old_registrant).deliver
end
def cancel_pending_delete
diff --git a/app/models/domain_mail_model.rb b/app/models/domain_mail_model.rb
index d443d8783..49effbb1f 100644
--- a/app/models/domain_mail_model.rb
+++ b/app/models/domain_mail_model.rb
@@ -1,6 +1,6 @@
class DomainMailModel
# Capture current values used in app/views/mailers/domain_mailer/* and app/mailers/domain_mailer will send later
-
+
def initialize(domain)
@domain = domain
@params = {errors: [], deliver_emails: domain.deliver_emails, id: domain.id}
@@ -15,13 +15,13 @@ class DomainMailModel
end
def pending_update_notification_for_new_registrant
- registrant # new registrant at this point
+ registrant # new registrant at this point
subject(:pending_update_notification_for_new_registrant_subject)
domain_info
compose
end
-
+
def pending_update_rejected_notification_for_new_registrant
registrant_pending
subject(:pending_update_rejected_notification_for_new_registrant_subject)
@@ -37,13 +37,6 @@ class DomainMailModel
compose
end
- def pending_deleted
- registrant
- subject(:domain_pending_deleted_subject)
- confirm_delete
- compose
- end
-
def pending_delete_rejected_notification
registrant
subject(:pending_delete_rejected_notification_subject)
@@ -69,11 +62,11 @@ class DomainMailModel
end
private
-
+
def registrant_old
@params[:recipient] = format Registrant.find(@domain.registrant_id_was).email
end
-
+
def registrant
@params[:recipient] = format @domain.registrant.email
end
@@ -83,7 +76,7 @@ class DomainMailModel
@params[:new_registrant_name] = @domain.pending_json['new_registrant_name']
@params[:old_registrant_name] = @domain.registrant.name
end
-
+
# registrant and domain admin contacts
def admins
emails = ([@domain.registrant.email] + @domain.admin_contacts.map { |x| format(x.email) })
@@ -106,26 +99,22 @@ class DomainMailModel
def confirm_update
verification_url('domain_update_confirms')
end
-
- def confirm_delete
- verification_url('domain_delete_confirms')
- end
def compose
@params
end
-
+
def verification_url(path)
token = verification_token or return
@params[:verification_url] = "#{ENV['registrant_url']}/registrant/#{path}/#{@domain.id}?token=#{token}"
end
-
+
def verification_token
return warn_missing(:registrant_verification_token) if @domain.registrant_verification_token.blank?
return warn_missing(:registrant_verification_asked_at) if @domain.registrant_verification_asked_at.blank?
@domain.registrant_verification_token
end
-
+
def domain_info
[:name, :registrar_name,
:registrant_name, :registrant_ident, :registrant_email,
@@ -143,7 +132,7 @@ class DomainMailModel
warn_missing item
nil
end
-
+
def warn_missing(item)
warn_not_delivered "#{item.to_s} is missing for #{@domain.name}"
end
@@ -154,6 +143,6 @@ class DomainMailModel
# Rails.logger.warn message
nil
end
-
+
end
diff --git a/app/views/mailers/domain_mailer/pending_deleted.html.erb b/app/views/mailers/delete_domain_mailer/pending.html.erb
similarity index 87%
rename from app/views/mailers/domain_mailer/pending_deleted.html.erb
rename to app/views/mailers/delete_domain_mailer/pending.html.erb
index 8a6c8e2bc..ced759234 100644
--- a/app/views/mailers/domain_mailer/pending_deleted.html.erb
+++ b/app/views/mailers/delete_domain_mailer/pending.html.erb
@@ -2,7 +2,7 @@ Tere
Registrisse laekus taotlus domeeni <%= @domain.name %> kustutamiseks. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduge oma registripidaja poole:
-<%= render 'mailers/domain_mailer/registrar/registrar.et.html', registrar: @registrar %>
+<%= render 'mailers/shared/registrar/registrar.et.html', registrar: @registrar %>
Muudatuse kinnitamiseks külastage palun allolevat lehekülge, kontrollige uuesti üle muudatuse andmed ning vajutage nuppu kinnitan.
@@ -19,7 +19,7 @@ Hi,
Application for deletion of your domain <%= @domain.name %> has been filed. Please make sure that the application is correct. Incase of problems please contact your registrar:
-<%= render 'mailers/domain_mailer/registrar/registrar.en.html', registrar: @registrar %>
+<%= render 'mailers/shared/registrar/registrar.en.html', registrar: @registrar %>
To confirm the update please visit this website, once again review the data and press approve:
diff --git a/app/views/mailers/domain_mailer/pending_deleted.text.erb b/app/views/mailers/delete_domain_mailer/pending.text.erb
similarity index 86%
rename from app/views/mailers/domain_mailer/pending_deleted.text.erb
rename to app/views/mailers/delete_domain_mailer/pending.text.erb
index 39460443a..a16fd82ff 100644
--- a/app/views/mailers/domain_mailer/pending_deleted.text.erb
+++ b/app/views/mailers/delete_domain_mailer/pending.text.erb
@@ -2,7 +2,7 @@ Tere
Registrisse laekus taotlus domeeni <%= @domain.name %> kustutamiseks. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduge oma registripidaja poole:
-<%= render 'mailers/domain_mailer/registrar/registrar.et.text', registrar: @registrar %>
+<%= render 'mailers/shared/registrar/registrar.et.text', registrar: @registrar %>
Muudatuse kinnitamiseks külastage palun allolevat lehekülge, kontrollige uuesti üle muudatuse andmed ning vajutage nuppu kinnitan.
@@ -18,7 +18,7 @@ Hi,
Application for deletion of your domain <%= @domain.name %> has been filed. Please make sure that the application is correct. In case of problems please contact your registrar:
-<%= render 'mailers/domain_mailer/registrar/registrar.en.text', registrar: @registrar %>
+<%= render 'mailers/shared/registrar/registrar.en.text', registrar: @registrar %>
To confirm the update please visit this website, once again review the data and press approve:
<%= @verification_url %>
diff --git a/app/views/mailers/domain_mailer/pending_update_expired_notification_for_new_registrant.html.erb b/app/views/mailers/registrant_change_mailer/pending_update_expired_notification_for_new_registrant.html.erb
similarity index 91%
rename from app/views/mailers/domain_mailer/pending_update_expired_notification_for_new_registrant.html.erb
rename to app/views/mailers/registrant_change_mailer/pending_update_expired_notification_for_new_registrant.html.erb
index 139e0a850..90d17462b 100644
--- a/app/views/mailers/domain_mailer/pending_update_expired_notification_for_new_registrant.html.erb
+++ b/app/views/mailers/registrant_change_mailer/pending_update_expired_notification_for_new_registrant.html.erb
@@ -16,7 +16,7 @@ Hi,
Domain registrant change request has been expired for the domain <%= @domain.name %>.
-Please contact to your registrar if you have any questions:
+Please contact to your registrar if you have any questions:
<%= render 'registrar.en.html', registrar: @registrar %>
diff --git a/app/views/mailers/domain_mailer/pending_update_expired_notification_for_new_registrant.text.erb b/app/views/mailers/registrant_change_mailer/pending_update_expired_notification_for_new_registrant.text.erb
similarity index 100%
rename from app/views/mailers/domain_mailer/pending_update_expired_notification_for_new_registrant.text.erb
rename to app/views/mailers/registrant_change_mailer/pending_update_expired_notification_for_new_registrant.text.erb
diff --git a/app/views/mailers/domain_mailer/pending_update_notification_for_new_registrant.html.erb b/app/views/mailers/registrant_change_mailer/pending_update_notification_for_new_registrant.html.erb
similarity index 100%
rename from app/views/mailers/domain_mailer/pending_update_notification_for_new_registrant.html.erb
rename to app/views/mailers/registrant_change_mailer/pending_update_notification_for_new_registrant.html.erb
diff --git a/app/views/mailers/domain_mailer/pending_update_notification_for_new_registrant.text.erb b/app/views/mailers/registrant_change_mailer/pending_update_notification_for_new_registrant.text.erb
similarity index 100%
rename from app/views/mailers/domain_mailer/pending_update_notification_for_new_registrant.text.erb
rename to app/views/mailers/registrant_change_mailer/pending_update_notification_for_new_registrant.text.erb
diff --git a/app/views/mailers/domain_mailer/pending_update_rejected_notification_for_new_registrant.html.erb b/app/views/mailers/registrant_change_mailer/pending_update_rejected_notification_for_new_registrant.html.erb
similarity index 100%
rename from app/views/mailers/domain_mailer/pending_update_rejected_notification_for_new_registrant.html.erb
rename to app/views/mailers/registrant_change_mailer/pending_update_rejected_notification_for_new_registrant.html.erb
diff --git a/app/views/mailers/domain_mailer/pending_update_rejected_notification_for_new_registrant.text.erb b/app/views/mailers/registrant_change_mailer/pending_update_rejected_notification_for_new_registrant.text.erb
similarity index 100%
rename from app/views/mailers/domain_mailer/pending_update_rejected_notification_for_new_registrant.text.erb
rename to app/views/mailers/registrant_change_mailer/pending_update_rejected_notification_for_new_registrant.text.erb
diff --git a/app/views/mailers/domain_mailer/pending_update_request_for_old_registrant.html.erb b/app/views/mailers/registrant_change_mailer/pending_update_request_for_old_registrant.html.erb
similarity index 100%
rename from app/views/mailers/domain_mailer/pending_update_request_for_old_registrant.html.erb
rename to app/views/mailers/registrant_change_mailer/pending_update_request_for_old_registrant.html.erb
diff --git a/app/views/mailers/domain_mailer/pending_update_request_for_old_registrant.text.erb b/app/views/mailers/registrant_change_mailer/pending_update_request_for_old_registrant.text.erb
similarity index 100%
rename from app/views/mailers/domain_mailer/pending_update_request_for_old_registrant.text.erb
rename to app/views/mailers/registrant_change_mailer/pending_update_request_for_old_registrant.text.erb
diff --git a/app/views/mailers/domain_mailer/registrant/_registrant.en.html.erb b/app/views/mailers/shared/registrant/_registrant.en.html.erb
similarity index 100%
rename from app/views/mailers/domain_mailer/registrant/_registrant.en.html.erb
rename to app/views/mailers/shared/registrant/_registrant.en.html.erb
diff --git a/app/views/mailers/domain_mailer/registrant/_registrant.en.text.erb b/app/views/mailers/shared/registrant/_registrant.en.text.erb
similarity index 100%
rename from app/views/mailers/domain_mailer/registrant/_registrant.en.text.erb
rename to app/views/mailers/shared/registrant/_registrant.en.text.erb
diff --git a/app/views/mailers/domain_mailer/registrant/_registrant.et.html.erb b/app/views/mailers/shared/registrant/_registrant.et.html.erb
similarity index 100%
rename from app/views/mailers/domain_mailer/registrant/_registrant.et.html.erb
rename to app/views/mailers/shared/registrant/_registrant.et.html.erb
diff --git a/app/views/mailers/domain_mailer/registrant/_registrant.et.text.erb b/app/views/mailers/shared/registrant/_registrant.et.text.erb
similarity index 100%
rename from app/views/mailers/domain_mailer/registrant/_registrant.et.text.erb
rename to app/views/mailers/shared/registrant/_registrant.et.text.erb
diff --git a/app/views/mailers/domain_mailer/registrar/_registrar.en.html.erb b/app/views/mailers/shared/registrar/_registrar.en.html.erb
similarity index 100%
rename from app/views/mailers/domain_mailer/registrar/_registrar.en.html.erb
rename to app/views/mailers/shared/registrar/_registrar.en.html.erb
diff --git a/app/views/mailers/domain_mailer/registrar/_registrar.en.text.erb b/app/views/mailers/shared/registrar/_registrar.en.text.erb
similarity index 100%
rename from app/views/mailers/domain_mailer/registrar/_registrar.en.text.erb
rename to app/views/mailers/shared/registrar/_registrar.en.text.erb
diff --git a/app/views/mailers/domain_mailer/registrar/_registrar.et.html.erb b/app/views/mailers/shared/registrar/_registrar.et.html.erb
similarity index 100%
rename from app/views/mailers/domain_mailer/registrar/_registrar.et.html.erb
rename to app/views/mailers/shared/registrar/_registrar.et.html.erb
diff --git a/app/views/mailers/domain_mailer/registrar/_registrar.et.text.erb b/app/views/mailers/shared/registrar/_registrar.et.text.erb
similarity index 100%
rename from app/views/mailers/domain_mailer/registrar/_registrar.et.text.erb
rename to app/views/mailers/shared/registrar/_registrar.et.text.erb
diff --git a/app/views/mailers/domain_mailer/registrar/_registrar.ru.html.erb b/app/views/mailers/shared/registrar/_registrar.ru.html.erb
similarity index 100%
rename from app/views/mailers/domain_mailer/registrar/_registrar.ru.html.erb
rename to app/views/mailers/shared/registrar/_registrar.ru.html.erb
diff --git a/app/views/mailers/domain_mailer/registrar/_registrar.ru.text.erb b/app/views/mailers/shared/registrar/_registrar.ru.text.erb
similarity index 100%
rename from app/views/mailers/domain_mailer/registrar/_registrar.ru.text.erb
rename to app/views/mailers/shared/registrar/_registrar.ru.text.erb
diff --git a/config/locales/mailers/delete_domain.en.yml b/config/locales/mailers/delete_domain.en.yml
new file mode 100644
index 000000000..07b3a8f89
--- /dev/null
+++ b/config/locales/mailers/delete_domain.en.yml
@@ -0,0 +1,6 @@
+en:
+ domain_mailer:
+ expiration:
+ subject: The %{domain_name} domain has expired
+ force_delete:
+ subject: Kustutusmenetluse teade
diff --git a/config/locales/mailers/domain.en.yml b/config/locales/mailers/domain.en.yml
index f0d021f68..43cfff784 100644
--- a/config/locales/mailers/domain.en.yml
+++ b/config/locales/mailers/domain.en.yml
@@ -1,10 +1,4 @@
en:
- domain_mailer:
- pending_update_request_for_old_registrant:
- subject: Kinnitustaotlus domeeni %{domain_name} registreerija vahetuseks / Application for approval for registrant change of %{domain_name}
- expiration:
- subject: The %{domain_name} domain has expired
- force_delete:
- subject: Kustutusmenetluse teade
- pending_deleted:
+ delete_domain_mailer:
+ pending:
subject: Kinnitustaotlus domeeni %{domain_name} kustutamiseks .ee registrist / Application for approval for deletion of %{domain_name}
diff --git a/config/locales/mailers/registrant_change.en.yml b/config/locales/mailers/registrant_change.en.yml
new file mode 100644
index 000000000..e7a5437b0
--- /dev/null
+++ b/config/locales/mailers/registrant_change.en.yml
@@ -0,0 +1,4 @@
+en:
+ registrant_change_mailer:
+ confirmation:
+ subject: Kinnitustaotlus domeeni %{domain_name} registreerija vahetuseks / Application for approval for registrant change of %{domain_name}
diff --git a/spec/mailers/delete_domain_mailer_spec.rb b/spec/mailers/delete_domain_mailer_spec.rb
new file mode 100644
index 000000000..3b80c8765
--- /dev/null
+++ b/spec/mailers/delete_domain_mailer_spec.rb
@@ -0,0 +1,42 @@
+require 'rails_helper'
+
+RSpec.describe DeleteDomainMailer do
+ describe '#pending' do
+ let(:domain) { instance_spy(Domain, name: 'test.com') }
+ let(:old_registrant) { instance_spy(Registrant, email: 'registrant@test.com') }
+ let(:domain_presenter) { instance_spy(DomainPresenter) }
+ let(:registrar_presenter) { instance_spy(RegistrarPresenter) }
+ subject(:message) { described_class.pending(domain: domain, old_registrant: old_registrant) }
+
+ before :example do
+ expect(DomainPresenter).to receive(:new).and_return(domain_presenter)
+ expect(RegistrarPresenter).to receive(:new).and_return(registrar_presenter)
+ end
+
+ it 'has sender' do
+ expect(message.from).to eq(['noreply@internet.ee'])
+ end
+
+ it 'has old registrant email as a recipient' do
+ expect(message.to).to match_array(['registrant@test.com'])
+ end
+
+ it 'has subject' do
+ subject = 'Kinnitustaotlus domeeni test.com kustutamiseks .ee registrist' \
+ ' / Application for approval for deletion of test.com'
+
+ expect(message.subject).to eq(subject)
+ end
+
+ it 'has confirmation url' do
+ allow(domain).to receive(:id).and_return(1)
+ expect(domain).to receive(:registrant_verification_token).and_return('test')
+ url = registrant_domain_delete_confirm_url(domain, token: 'test')
+ expect(message.body.parts.first.decoded).to include(url)
+ end
+
+ it 'sends message' do
+ expect { message.deliver! }.to change { ActionMailer::Base.deliveries.count }.by(1)
+ end
+ end
+end
diff --git a/spec/mailers/domain_mailer_spec.rb b/spec/mailers/domain_mailer_spec.rb
index 2363d57ea..2ba338fc7 100644
--- a/spec/mailers/domain_mailer_spec.rb
+++ b/spec/mailers/domain_mailer_spec.rb
@@ -1,88 +1,6 @@
require 'rails_helper'
RSpec.describe DomainMailer do
- describe '#pending_update_request_for_old_registrant' do
- let(:domain) { instance_spy(Domain, name: 'test.com') }
- let(:registrant) { instance_spy(Registrant, email: 'registrant@test.com') }
- let(:domain_presenter) { instance_spy(DomainPresenter) }
- let(:registrar_presenter) { instance_spy(RegistrarPresenter) }
- let(:registrant_presenter) { instance_spy(RegistrantPresenter) }
- subject(:message) { described_class.pending_update_request_for_old_registrant(domain: domain,
- registrant: registrant,
- ) }
-
- before :example do
- expect(DomainPresenter).to receive(:new).and_return(domain_presenter)
- expect(RegistrarPresenter).to receive(:new).and_return(registrar_presenter)
- expect(RegistrantPresenter).to receive(:new).and_return(registrant_presenter)
- end
-
- it 'has sender' do
- expect(message.from).to eq(['noreply@internet.ee'])
- end
-
- it 'has registrant email as a recipient' do
- expect(message.to).to match_array(['registrant@test.com'])
- end
-
- it 'has subject' do
- subject = 'Kinnitustaotlus domeeni test.com registreerija vahetuseks' \
- ' / Application for approval for registrant change of test.com'
-
- expect(message.subject).to eq(subject)
- end
-
- it 'has confirmation url' do
- allow(domain).to receive(:id).and_return(1)
- expect(domain).to receive(:registrant_verification_token).and_return('test')
- url = registrant_domain_update_confirm_url(domain, token: 'test')
- expect(message.body.parts.first.decoded).to include(url)
- end
-
- it 'sends message' do
- expect { message.deliver! }.to change { ActionMailer::Base.deliveries.count }.by(1)
- end
- end
-
- describe '#pending_deleted' do
- let(:domain) { instance_spy(Domain, name: 'test.com') }
- let(:registrant) { instance_spy(Registrant, email: 'registrant@test.com') }
- let(:domain_presenter) { instance_spy(DomainPresenter) }
- let(:registrar_presenter) { instance_spy(RegistrarPresenter) }
- subject(:message) { described_class.pending_deleted(domain: domain, registrant: registrant) }
-
- before :example do
- expect(DomainPresenter).to receive(:new).and_return(domain_presenter)
- expect(RegistrarPresenter).to receive(:new).and_return(registrar_presenter)
- end
-
- it 'has sender' do
- expect(message.from).to eq(['noreply@internet.ee'])
- end
-
- it 'has registrant email as a recipient' do
- expect(message.to).to match_array(['registrant@test.com'])
- end
-
- it 'has subject' do
- subject = 'Kinnitustaotlus domeeni test.com kustutamiseks .ee registrist' \
- ' / Application for approval for deletion of test.com'
-
- expect(message.subject).to eq(subject)
- end
-
- it 'has confirmation url' do
- allow(domain).to receive(:id).and_return(1)
- expect(domain).to receive(:registrant_verification_token).and_return('test')
- url = registrant_domain_delete_confirm_url(domain, token: 'test')
- expect(message.body.parts.first.decoded).to include(url)
- end
-
- it 'sends message' do
- expect { message.deliver! }.to change { ActionMailer::Base.deliveries.count }.by(1)
- end
- end
-
describe '#force_delete' do
let(:domain) { instance_spy(Domain, name: 'test.com') }
let(:domain_presenter) { instance_spy(DomainPresenter) }
diff --git a/spec/mailers/registrant_change_mailer_spec.rb b/spec/mailers/registrant_change_mailer_spec.rb
new file mode 100644
index 000000000..a26b507d3
--- /dev/null
+++ b/spec/mailers/registrant_change_mailer_spec.rb
@@ -0,0 +1,46 @@
+require 'rails_helper'
+
+RSpec.describe RegistrantChangeMailer do
+ describe '#confirmation' do
+ let(:domain) { instance_spy(Domain, name: 'test.com') }
+ let(:registrant) { instance_spy(Registrant, email: 'registrant@test.com') }
+ let(:domain_presenter) { instance_spy(DomainPresenter) }
+ let(:registrar_presenter) { instance_spy(RegistrarPresenter) }
+ let(:registrant_presenter) { instance_spy(RegistrantPresenter) }
+ subject(:message) { described_class.confirmation(domain: domain,
+ registrant: registrant,
+ ) }
+
+ before :example do
+ expect(DomainPresenter).to receive(:new).and_return(domain_presenter)
+ expect(RegistrarPresenter).to receive(:new).and_return(registrar_presenter)
+ expect(RegistrantPresenter).to receive(:new).and_return(registrant_presenter)
+ end
+
+ it 'has sender' do
+ expect(message.from).to eq(['noreply@internet.ee'])
+ end
+
+ it 'has registrant email as a recipient' do
+ expect(message.to).to match_array(['registrant@test.com'])
+ end
+
+ it 'has subject' do
+ subject = 'Kinnitustaotlus domeeni test.com registreerija vahetuseks' \
+ ' / Application for approval for registrant change of test.com'
+
+ expect(message.subject).to eq(subject)
+ end
+
+ it 'has confirmation url' do
+ allow(domain).to receive(:id).and_return(1)
+ expect(domain).to receive(:registrant_verification_token).and_return('test')
+ url = registrant_domain_update_confirm_url(domain, token: 'test')
+ expect(message.body.parts.first.decoded).to include(url)
+ end
+
+ it 'sends message' do
+ expect { message.deliver! }.to change { ActionMailer::Base.deliveries.count }.by(1)
+ end
+ end
+end
diff --git a/spec/models/domain_spec.rb b/spec/models/domain_spec.rb
index 22b3dd5a2..1a3e47bc6 100644
--- a/spec/models/domain_spec.rb
+++ b/spec/models/domain_spec.rb
@@ -822,17 +822,19 @@ RSpec.describe Domain, db: false do
describe '#pending_delete!' do
let(:domain) { described_class.new }
- let(:previous_registrant) { instance_double(Registrant) }
+ let(:old_registrant) { instance_double(Registrant) }
let(:message) { instance_double(Mail::Message) }
before :example do
- expect(Registrant).to receive(:find).and_return(previous_registrant)
+ expect(Registrant).to receive(:find).and_return(old_registrant)
allow(domain).to receive(:registrant_verification_asked?).and_return(true)
allow(domain).to receive(:save)
end
it 'sends notification email' do
- expect(DomainMailer).to receive(:pending_deleted).with(domain: domain, registrant: previous_registrant).and_return(message)
+ expect(DeleteDomainMailer).to receive(:pending)
+ .with(domain: domain, old_registrant: old_registrant)
+ .and_return(message)
expect(message).to receive(:deliver)
domain.pending_delete!
end
diff --git a/spec/views/mailers/delete_domain_mailer/pending.html.erb_spec.rb b/spec/views/mailers/delete_domain_mailer/pending.html.erb_spec.rb
new file mode 100644
index 000000000..e36208916
--- /dev/null
+++ b/spec/views/mailers/delete_domain_mailer/pending.html.erb_spec.rb
@@ -0,0 +1,11 @@
+require 'rails_helper'
+require_relative 'pending_shared'
+
+RSpec.describe 'mailers/delete_domain_mailer/pending.html.erb' do
+ before :example do
+ stub_template 'mailers/shared/registrar/_registrar.et.html' => 'test registrar estonian'
+ stub_template 'mailers/shared/registrar/_registrar.en.html' => 'test registrar english'
+ end
+
+ include_examples 'delete domain mailer pending'
+end
diff --git a/spec/views/mailers/delete_domain_mailer/pending.text.erb_spec.rb b/spec/views/mailers/delete_domain_mailer/pending.text.erb_spec.rb
new file mode 100644
index 000000000..87aea70ab
--- /dev/null
+++ b/spec/views/mailers/delete_domain_mailer/pending.text.erb_spec.rb
@@ -0,0 +1,11 @@
+require 'rails_helper'
+require_relative 'pending_shared'
+
+RSpec.describe 'mailers/delete_domain_mailer/pending.text.erb' do
+ before :example do
+ stub_template 'mailers/shared/registrar/_registrar.et.text' => 'test registrar estonian'
+ stub_template 'mailers/shared/registrar/_registrar.en.text' => 'test registrar english'
+ end
+
+ include_examples 'delete domain mailer pending'
+end
diff --git a/spec/views/mailers/domain_mailer/pending_deleted_shared.rb b/spec/views/mailers/delete_domain_mailer/pending_shared.rb
similarity index 94%
rename from spec/views/mailers/domain_mailer/pending_deleted_shared.rb
rename to spec/views/mailers/delete_domain_mailer/pending_shared.rb
index 950ec0309..2b38eca85 100644
--- a/spec/views/mailers/domain_mailer/pending_deleted_shared.rb
+++ b/spec/views/mailers/delete_domain_mailer/pending_shared.rb
@@ -1,6 +1,6 @@
require 'rails_helper'
-RSpec.shared_examples 'domain mailer pending deleted' do
+RSpec.shared_examples 'delete domain mailer pending' do
let(:domain) { instance_spy(DomainPresenter) }
let(:lang_count) { 2 }
diff --git a/spec/views/mailers/domain_mailer/pending_deleted.html.erb_spec.rb b/spec/views/mailers/domain_mailer/pending_deleted.html.erb_spec.rb
deleted file mode 100644
index cb3e96ec9..000000000
--- a/spec/views/mailers/domain_mailer/pending_deleted.html.erb_spec.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-require 'rails_helper'
-require_relative 'pending_deleted_shared'
-
-RSpec.describe 'mailers/domain_mailer/pending_deleted.html.erb' do
- before :example do
- stub_template 'mailers/domain_mailer/registrar/_registrar.et.html' => 'test registrar estonian'
- stub_template 'mailers/domain_mailer/registrar/_registrar.en.html' => 'test registrar english'
- end
-
- include_examples 'domain mailer pending deleted'
-end
diff --git a/spec/views/mailers/domain_mailer/pending_deleted.text.erb_spec.rb b/spec/views/mailers/domain_mailer/pending_deleted.text.erb_spec.rb
deleted file mode 100644
index 2326cc9e1..000000000
--- a/spec/views/mailers/domain_mailer/pending_deleted.text.erb_spec.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-require 'rails_helper'
-require_relative 'pending_deleted_shared'
-
-RSpec.describe 'mailers/domain_mailer/pending_deleted.text.erb' do
- before :example do
- stub_template 'mailers/domain_mailer/registrar/_registrar.et.text' => 'test registrar estonian'
- stub_template 'mailers/domain_mailer/registrar/_registrar.en.text' => 'test registrar english'
- end
-
- include_examples 'domain mailer pending deleted'
-end
diff --git a/spec/views/mailers/domain_mailer/pending_update_request_for_old_registrant.html.erb_spec.rb b/spec/views/mailers/domain_mailer/pending_update_request_for_old_registrant.html.erb_spec.rb
deleted file mode 100644
index b987759b5..000000000
--- a/spec/views/mailers/domain_mailer/pending_update_request_for_old_registrant.html.erb_spec.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-require 'rails_helper'
-require_relative 'pending_update_request_for_old_registrant_shared'
-
-RSpec.describe 'mailers/domain_mailer/pending_update_request_for_old_registrant.html.erb' do
- before :example do
- stub_template 'mailers/domain_mailer/registrar/_registrar.et.html' => 'test registrar estonian'
- stub_template 'mailers/domain_mailer/registrar/_registrar.en.html' => 'test registrar english'
- stub_template 'mailers/domain_mailer/registrant/_registrant.et.html' => 'test new registrant estonian'
- stub_template 'mailers/domain_mailer/registrant/_registrant.en.html' => 'test new registrant english'
- end
-
- include_examples 'domain mailer pending update request for old registrant'
-end
diff --git a/spec/views/mailers/domain_mailer/pending_update_request_for_old_registrant.text.erb_spec.rb b/spec/views/mailers/domain_mailer/pending_update_request_for_old_registrant.text.erb_spec.rb
deleted file mode 100644
index 4ca88bce1..000000000
--- a/spec/views/mailers/domain_mailer/pending_update_request_for_old_registrant.text.erb_spec.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-require 'rails_helper'
-require_relative 'pending_update_request_for_old_registrant_shared'
-
-RSpec.describe 'mailers/domain_mailer/pending_update_request_for_old_registrant.text.erb' do
- before :example do
- stub_template 'mailers/domain_mailer/registrar/_registrar.et.text' => 'test registrar estonian'
- stub_template 'mailers/domain_mailer/registrar/_registrar.en.text' => 'test registrar english'
- stub_template 'mailers/domain_mailer/registrant/_registrant.et.text' => 'test new registrant estonian'
- stub_template 'mailers/domain_mailer/registrant/_registrant.en.text' => 'test new registrant english'
- end
-
- include_examples 'domain mailer pending update request for old registrant'
-end
diff --git a/spec/views/mailers/registrant_change_mailer/confirmation.html.erb_spec.rb b/spec/views/mailers/registrant_change_mailer/confirmation.html.erb_spec.rb
new file mode 100644
index 000000000..c59dd4e55
--- /dev/null
+++ b/spec/views/mailers/registrant_change_mailer/confirmation.html.erb_spec.rb
@@ -0,0 +1,13 @@
+require 'rails_helper'
+require_relative 'confirmation_shared'
+
+RSpec.describe 'mailers/registrant_change_mailer/confirmation.html.erb' do
+ before :example do
+ stub_template 'mailers/shared/registrar/_registrar.et.html' => 'test registrar estonian'
+ stub_template 'mailers/shared/registrar/_registrar.en.html' => 'test registrar english'
+ stub_template 'mailers/shared/registrant/_registrant.et.html' => 'test new registrant estonian'
+ stub_template 'mailers/shared/registrant/_registrant.en.html' => 'test new registrant english'
+ end
+
+ include_examples 'domain mailer pending update request for old registrant'
+end
diff --git a/spec/views/mailers/registrant_change_mailer/confirmation.text.erb_spec.rb b/spec/views/mailers/registrant_change_mailer/confirmation.text.erb_spec.rb
new file mode 100644
index 000000000..37edf78e9
--- /dev/null
+++ b/spec/views/mailers/registrant_change_mailer/confirmation.text.erb_spec.rb
@@ -0,0 +1,13 @@
+require 'rails_helper'
+require_relative 'confirmation_shared'
+
+RSpec.describe 'mailers/registrant_change_mailer/confirmation.text.erb' do
+ before :example do
+ stub_template 'mailers/shared/registrar/_registrar.et.text' => 'test registrar estonian'
+ stub_template 'mailers/shared/registrar/_registrar.en.text' => 'test registrar english'
+ stub_template 'mailers/shared/registrant/_registrant.et.text' => 'test new registrant estonian'
+ stub_template 'mailers/shared/registrant/_registrant.en.text' => 'test new registrant english'
+ end
+
+ include_examples 'domain mailer pending update request for old registrant'
+end
diff --git a/spec/views/mailers/domain_mailer/pending_update_request_for_old_registrant_shared.rb b/spec/views/mailers/registrant_change_mailer/confirmation_shared.rb
similarity index 100%
rename from spec/views/mailers/domain_mailer/pending_update_request_for_old_registrant_shared.rb
rename to spec/views/mailers/registrant_change_mailer/confirmation_shared.rb
diff --git a/spec/views/mailers/domain_mailer/pending_update_notification_for_new_registrant.html.erb_spec.rb b/spec/views/mailers/registrant_change_mailer/pending_update_notification_for_new_registrant.html.erb_spec.rb
similarity index 100%
rename from spec/views/mailers/domain_mailer/pending_update_notification_for_new_registrant.html.erb_spec.rb
rename to spec/views/mailers/registrant_change_mailer/pending_update_notification_for_new_registrant.html.erb_spec.rb
diff --git a/spec/views/mailers/domain_mailer/pending_update_notification_for_new_registrant.text.erb_spec.rb b/spec/views/mailers/registrant_change_mailer/pending_update_notification_for_new_registrant.text.erb_spec.rb
similarity index 100%
rename from spec/views/mailers/domain_mailer/pending_update_notification_for_new_registrant.text.erb_spec.rb
rename to spec/views/mailers/registrant_change_mailer/pending_update_notification_for_new_registrant.text.erb_spec.rb
diff --git a/spec/views/mailers/domain_mailer/pending_update_notification_for_new_registrant_shared.rb b/spec/views/mailers/registrant_change_mailer/pending_update_notification_for_new_registrant_shared.rb
similarity index 100%
rename from spec/views/mailers/domain_mailer/pending_update_notification_for_new_registrant_shared.rb
rename to spec/views/mailers/registrant_change_mailer/pending_update_notification_for_new_registrant_shared.rb
diff --git a/spec/views/mailers/domain_mailer/registrant/_registrant.en.html.erb_spec.rb b/spec/views/mailers/shared/registrant/_registrant.en.html.erb_spec.rb
similarity index 100%
rename from spec/views/mailers/domain_mailer/registrant/_registrant.en.html.erb_spec.rb
rename to spec/views/mailers/shared/registrant/_registrant.en.html.erb_spec.rb
diff --git a/spec/views/mailers/domain_mailer/registrant/_registrant.en.text.erb_spec.rb b/spec/views/mailers/shared/registrant/_registrant.en.text.erb_spec.rb
similarity index 100%
rename from spec/views/mailers/domain_mailer/registrant/_registrant.en.text.erb_spec.rb
rename to spec/views/mailers/shared/registrant/_registrant.en.text.erb_spec.rb
diff --git a/spec/views/mailers/domain_mailer/registrant/_registrant.et.html.erb_spec.rb b/spec/views/mailers/shared/registrant/_registrant.et.html.erb_spec.rb
similarity index 100%
rename from spec/views/mailers/domain_mailer/registrant/_registrant.et.html.erb_spec.rb
rename to spec/views/mailers/shared/registrant/_registrant.et.html.erb_spec.rb
diff --git a/spec/views/mailers/domain_mailer/registrant/_registrant.et.text.erb_spec.rb b/spec/views/mailers/shared/registrant/_registrant.et.text.erb_spec.rb
similarity index 100%
rename from spec/views/mailers/domain_mailer/registrant/_registrant.et.text.erb_spec.rb
rename to spec/views/mailers/shared/registrant/_registrant.et.text.erb_spec.rb
diff --git a/spec/views/mailers/domain_mailer/registrant/registrant_shared.rb b/spec/views/mailers/shared/registrant/registrant_shared.rb
similarity index 100%
rename from spec/views/mailers/domain_mailer/registrant/registrant_shared.rb
rename to spec/views/mailers/shared/registrant/registrant_shared.rb
diff --git a/spec/views/mailers/domain_mailer/registrar/_registrar.en.html.erb_spec.rb b/spec/views/mailers/shared/registrar/_registrar.en.html.erb_spec.rb
similarity index 100%
rename from spec/views/mailers/domain_mailer/registrar/_registrar.en.html.erb_spec.rb
rename to spec/views/mailers/shared/registrar/_registrar.en.html.erb_spec.rb
diff --git a/spec/views/mailers/domain_mailer/registrar/_registrar.en.text.erb_spec.rb b/spec/views/mailers/shared/registrar/_registrar.en.text.erb_spec.rb
similarity index 100%
rename from spec/views/mailers/domain_mailer/registrar/_registrar.en.text.erb_spec.rb
rename to spec/views/mailers/shared/registrar/_registrar.en.text.erb_spec.rb
diff --git a/spec/views/mailers/domain_mailer/registrar/_registrar.et.html.erb_spec.rb b/spec/views/mailers/shared/registrar/_registrar.et.html.erb_spec.rb
similarity index 100%
rename from spec/views/mailers/domain_mailer/registrar/_registrar.et.html.erb_spec.rb
rename to spec/views/mailers/shared/registrar/_registrar.et.html.erb_spec.rb
diff --git a/spec/views/mailers/domain_mailer/registrar/_registrar.et.text.erb_spec.rb b/spec/views/mailers/shared/registrar/_registrar.et.text.erb_spec.rb
similarity index 100%
rename from spec/views/mailers/domain_mailer/registrar/_registrar.et.text.erb_spec.rb
rename to spec/views/mailers/shared/registrar/_registrar.et.text.erb_spec.rb
diff --git a/spec/views/mailers/domain_mailer/registrar/_registrar.ru.html.erb_spec.rb b/spec/views/mailers/shared/registrar/_registrar.ru.html.erb_spec.rb
similarity index 100%
rename from spec/views/mailers/domain_mailer/registrar/_registrar.ru.html.erb_spec.rb
rename to spec/views/mailers/shared/registrar/_registrar.ru.html.erb_spec.rb
diff --git a/spec/views/mailers/domain_mailer/registrar/_registrar.ru.text.erb_spec.rb b/spec/views/mailers/shared/registrar/_registrar.ru.text.erb_spec.rb
similarity index 100%
rename from spec/views/mailers/domain_mailer/registrar/_registrar.ru.text.erb_spec.rb
rename to spec/views/mailers/shared/registrar/_registrar.ru.text.erb_spec.rb
diff --git a/spec/views/mailers/domain_mailer/registrar/registrar_shared.rb b/spec/views/mailers/shared/registrar/registrar_shared.rb
similarity index 100%
rename from spec/views/mailers/domain_mailer/registrar/registrar_shared.rb
rename to spec/views/mailers/shared/registrar/registrar_shared.rb