mirror of
https://github.com/internetee/registry.git
synced 2025-06-12 07:34:45 +02:00
Merge pull request #1166 from internetee/refactor-domain-mailer
Refactor domain mailer
This commit is contained in:
commit
718bcbcea6
21 changed files with 175 additions and 108 deletions
|
@ -3,9 +3,9 @@ class DomainDeleteConfirmEmailJob < Que::Job
|
||||||
domain = Domain.find(domain_id)
|
domain = Domain.find(domain_id)
|
||||||
|
|
||||||
log(domain)
|
log(domain)
|
||||||
DomainDeleteMailer.confirmation(domain: domain,
|
DomainDeleteMailer.confirmation_request(domain: domain,
|
||||||
registrar: domain.registrar,
|
registrar: domain.registrar,
|
||||||
registrant: domain.registrant).deliver_now
|
registrant: domain.registrant).deliver_now
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
|
@ -19,7 +19,13 @@ class DomainDeleteConfirmJob < Que::Job
|
||||||
domain.save(validate: false)
|
domain.save(validate: false)
|
||||||
raise_errors!(domain)
|
raise_errors!(domain)
|
||||||
|
|
||||||
DomainMailer.pending_delete_rejected_notification(domain_id, true).deliver
|
if domain.registrant_verification_token.blank?
|
||||||
|
Rails.logger.warn "EMAIL NOT DELIVERED: registrant_verification_token is missing for #{domain.name}"
|
||||||
|
elsif domain.registrant_verification_asked_at.blank?
|
||||||
|
Rails.logger.warn "EMAIL NOT DELIVERED: registrant_verification_asked_at is missing for #{domain.name}"
|
||||||
|
else
|
||||||
|
DomainDeleteMailer.rejected(domain).deliver_now
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
destroy # it's best to destroy the job in the same transaction
|
destroy # it's best to destroy the job in the same transaction
|
||||||
|
|
|
@ -3,7 +3,7 @@ class DomainDeleteMailer < ApplicationMailer
|
||||||
%w[private_person legal_person]
|
%w[private_person legal_person]
|
||||||
end
|
end
|
||||||
|
|
||||||
def confirmation(domain:, registrar:, registrant:)
|
def confirmation_request(domain:, registrar:, registrant:)
|
||||||
@domain = DomainPresenter.new(domain: domain, view: view_context)
|
@domain = DomainPresenter.new(domain: domain, view: view_context)
|
||||||
@registrar = RegistrarPresenter.new(registrar: registrar, view: view_context)
|
@registrar = RegistrarPresenter.new(registrar: registrar, view: view_context)
|
||||||
@confirmation_url = confirmation_url(domain)
|
@confirmation_url = confirmation_url(domain)
|
||||||
|
@ -12,6 +12,27 @@ class DomainDeleteMailer < ApplicationMailer
|
||||||
mail(to: registrant.email, subject: subject)
|
mail(to: registrant.email, subject: subject)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def accepted(domain)
|
||||||
|
@domain = domain
|
||||||
|
|
||||||
|
subject = default_i18n_subject(domain: domain.name)
|
||||||
|
mail(to: domain.registrant.email, subject: subject)
|
||||||
|
end
|
||||||
|
|
||||||
|
def rejected(domain)
|
||||||
|
@domain = domain
|
||||||
|
|
||||||
|
subject = default_i18n_subject(domain: domain.name)
|
||||||
|
mail(to: domain.registrant.email, subject: subject)
|
||||||
|
end
|
||||||
|
|
||||||
|
def expired(domain)
|
||||||
|
@domain = domain
|
||||||
|
|
||||||
|
subject = default_i18n_subject(domain: domain.name)
|
||||||
|
mail(to: domain.registrant.email, subject: subject)
|
||||||
|
end
|
||||||
|
|
||||||
def forced(domain:, registrar:, registrant:, template_name:)
|
def forced(domain:, registrar:, registrant:, template_name:)
|
||||||
@domain = DomainPresenter.new(domain: domain, view: view_context)
|
@domain = DomainPresenter.new(domain: domain, view: view_context)
|
||||||
@registrar = RegistrarPresenter.new(registrar: registrar, view: view_context)
|
@registrar = RegistrarPresenter.new(registrar: registrar, view: view_context)
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
class DomainMailer < ApplicationMailer
|
|
||||||
include Que::Mailer
|
|
||||||
|
|
||||||
def pending_delete_rejected_notification(domain_id, should_deliver)
|
|
||||||
@domain = Domain.find_by(id: domain_id)
|
|
||||||
return unless @domain
|
|
||||||
return if delivery_off?(@domain, should_deliver)
|
|
||||||
# no delivery off control, driggered by que, no epp request
|
|
||||||
|
|
||||||
if @domain.registrant_verification_token.blank?
|
|
||||||
logger.warn "EMAIL NOT DELIVERED: registrant_verification_token is missing for #{@domain.name}"
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if @domain.registrant_verification_asked_at.blank?
|
|
||||||
logger.warn "EMAIL NOT DELIVERED: registrant_verification_asked_at is missing for #{@domain.name}"
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
mail(to: format(@domain.registrant.email),
|
|
||||||
subject: "#{I18n.t(:pending_delete_rejected_notification_subject,
|
|
||||||
name: @domain.name)} [#{@domain.name}]")
|
|
||||||
end
|
|
||||||
|
|
||||||
def pending_delete_expired_notification(domain_id, should_deliver)
|
|
||||||
@domain = Domain.find_by(id: domain_id)
|
|
||||||
return unless @domain
|
|
||||||
return if delivery_off?(@domain, should_deliver)
|
|
||||||
# no delivery off control, driggered by cron, no epp request
|
|
||||||
|
|
||||||
mail(to: format(@domain.registrant.email),
|
|
||||||
subject: "#{I18n.t(:pending_delete_expired_notification_subject,
|
|
||||||
name: @domain.name)} [#{@domain.name}]")
|
|
||||||
end
|
|
||||||
|
|
||||||
def delete_confirmation(domain_id, should_deliver)
|
|
||||||
@domain = Domain.find_by(id: domain_id)
|
|
||||||
return unless @domain
|
|
||||||
return if delivery_off?(@domain, should_deliver)
|
|
||||||
|
|
||||||
mail(to: format(@domain.registrant.email),
|
|
||||||
subject: "#{I18n.t(:delete_confirmation_subject,
|
|
||||||
name: @domain.name)} [#{@domain.name}]")
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -167,7 +167,7 @@ class Domain < ActiveRecord::Base
|
||||||
errors.add(:statuses, :taken)
|
errors.add(:statuses, :taken)
|
||||||
end
|
end
|
||||||
|
|
||||||
attr_accessor :registrant_typeahead, :update_me, :deliver_emails,
|
attr_accessor :registrant_typeahead, :update_me,
|
||||||
:epp_pending_update, :epp_pending_delete, :reserved_pw
|
:epp_pending_update, :epp_pending_delete, :reserved_pw
|
||||||
|
|
||||||
def subordinate_nameservers
|
def subordinate_nameservers
|
||||||
|
|
|
@ -19,7 +19,7 @@ class DomainCron
|
||||||
RegistrantChangeExpiredEmailJob.enqueue(domain.id)
|
RegistrantChangeExpiredEmailJob.enqueue(domain.id)
|
||||||
end
|
end
|
||||||
if domain.pending_delete? || domain.pending_delete_confirmation?
|
if domain.pending_delete? || domain.pending_delete_confirmation?
|
||||||
DomainMailer.pending_delete_expired_notification(domain.id, true).deliver
|
DomainDeleteMailer.expired(domain).deliver_now
|
||||||
end
|
end
|
||||||
|
|
||||||
domain.preclean_pendings
|
domain.preclean_pendings
|
||||||
|
|
|
@ -483,8 +483,6 @@ class Epp::Domain < Domain
|
||||||
registrant_verification_asked!(frame.to_s, current_user.id)
|
registrant_verification_asked!(frame.to_s, current_user.id)
|
||||||
end
|
end
|
||||||
|
|
||||||
self.deliver_emails = true # turn on email delivery for epp
|
|
||||||
|
|
||||||
errors.empty? && super(at)
|
errors.empty? && super(at)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -511,7 +509,7 @@ class Epp::Domain < Domain
|
||||||
preclean_pendings
|
preclean_pendings
|
||||||
statuses.delete(DomainStatus::PENDING_DELETE_CONFIRMATION)
|
statuses.delete(DomainStatus::PENDING_DELETE_CONFIRMATION)
|
||||||
statuses.delete(DomainStatus::PENDING_DELETE)
|
statuses.delete(DomainStatus::PENDING_DELETE)
|
||||||
DomainMailer.delete_confirmation(id, deliver_emails).deliver
|
DomainDeleteMailer.accepted(self).deliver_now
|
||||||
clean_pendings!
|
clean_pendings!
|
||||||
set_pending_delete!
|
set_pending_delete!
|
||||||
true
|
true
|
||||||
|
|
|
@ -1,15 +1,10 @@
|
||||||
Tere
|
Tere
|
||||||
<br><br>
|
<br><br>
|
||||||
Domeeni <%= @domain.name %> kustutamise taotlus on registreerija poolt kinnitatud. Domeen <%= @domain.name %> on peatatud ja kustub registrist.
|
Domeeni <%= @domain.name %> kustutamise taotlus on registreerija poolt kinnitatud. Domeen <%= @domain.name %> on peatatud ja kustub registrist.
|
||||||
<br><br>
|
<%= render 'mailers/shared/signatures/signature.et.html' %>
|
||||||
Lugupidamisega<br>
|
|
||||||
Eesti Interneti Sihtasutus
|
|
||||||
<br><br>
|
|
||||||
<hr>
|
<hr>
|
||||||
<br><br>
|
<br><br>
|
||||||
Hi,
|
Hi,
|
||||||
<br><br>
|
<br><br>
|
||||||
Domain <%= @domain.name %> deletion is confirmed by the registrant. Domain <%= @domain.name %> is suspended and will be deleted.
|
Domain <%= @domain.name %> deletion is confirmed by the registrant. Domain <%= @domain.name %> is suspended and will be deleted.
|
||||||
<br><br>
|
<%= render 'mailers/shared/signatures/signature.en.html' %>
|
||||||
Best Regards,<br>
|
|
||||||
Estonian Internet Foundation
|
|
|
@ -2,14 +2,11 @@ Tere
|
||||||
|
|
||||||
Domeeni <%= @domain.name %> kustutamise taotlus on registreerija poolt kinnitatud. Domeen <%= @domain.name %> on peatatud ja kustub registrist.
|
Domeeni <%= @domain.name %> kustutamise taotlus on registreerija poolt kinnitatud. Domeen <%= @domain.name %> on peatatud ja kustub registrist.
|
||||||
|
|
||||||
Lugupidamisega
|
<%= render 'mailers/shared/signatures/signature.et.text' %>
|
||||||
Eesti Interneti Sihtasutus
|
|
||||||
|
|
||||||
--------------------------------------
|
--------------------------------------
|
||||||
|
|
||||||
Hi,
|
Hi,
|
||||||
|
|
||||||
Domain <%= @domain.name %> deletion is confirmed by the registrant. Domain <%= @domain.name %> is suspended and will be deleted.
|
Domain <%= @domain.name %> deletion is confirmed by the registrant. Domain <%= @domain.name %> is suspended and will be deleted.
|
||||||
|
|
||||||
Best Regards,
|
<%= render 'mailers/shared/signatures/signature.en.text' %>
|
||||||
Estonian Internet Foundation
|
|
|
@ -1,15 +1,10 @@
|
||||||
Tere
|
Tere
|
||||||
<br><br>
|
<br><br>
|
||||||
Domeeni <%= @domain.name %> kustutamise taotlust ei kinnitatud tähtaegselt registreerija <%= @domain.registrant.name %> poolt. Domeeni <%= @domain.name %> kustutamine on sellest tulenevalt tühistatud.
|
Domeeni <%= @domain.name %> kustutamise taotlust ei kinnitatud tähtaegselt registreerija <%= @domain.registrant.name %> poolt. Domeeni <%= @domain.name %> kustutamine on sellest tulenevalt tühistatud.
|
||||||
<br><br>
|
<%= render 'mailers/shared/signatures/signature.et.html' %>
|
||||||
Lugupidamisega<br>
|
|
||||||
Eesti Interneti Sihtasutus
|
|
||||||
<br><br>
|
|
||||||
<hr>
|
<hr>
|
||||||
<br><br>
|
<br><br>
|
||||||
Hi,
|
Hi,
|
||||||
<br><br>
|
<br><br>
|
||||||
Domain <%= @domain.name %> deletion was not approved in time by the registrant <%= @domain.registrant.name %>. Thus the deletion of domain <%= @domain.name %> is cancelled.
|
Domain <%= @domain.name %> deletion was not approved in time by the registrant <%= @domain.registrant.name %>. Thus the deletion of domain <%= @domain.name %> is cancelled.
|
||||||
<br><br>
|
<%= render 'mailers/shared/signatures/signature.en.html' %>
|
||||||
Best Regards,<br>
|
|
||||||
Estonian Internet Foundation
|
|
|
@ -2,14 +2,11 @@ Tere
|
||||||
|
|
||||||
Domeeni <%= @domain.name %> kustutamise taotlust ei kinnitatud tähtaegselt registreerija <%= @domain.registrant.name %> poolt. Domeeni <%= @domain.name %> kustutamine on sellest tulenevalt tühistatud.
|
Domeeni <%= @domain.name %> kustutamise taotlust ei kinnitatud tähtaegselt registreerija <%= @domain.registrant.name %> poolt. Domeeni <%= @domain.name %> kustutamine on sellest tulenevalt tühistatud.
|
||||||
|
|
||||||
Lugupidamisega
|
<%= render 'mailers/shared/signatures/signature.et.text' %>
|
||||||
Eesti Interneti Sihtasutus
|
|
||||||
|
|
||||||
--------------------------------------
|
--------------------------------------
|
||||||
|
|
||||||
Hi,
|
Hi,
|
||||||
|
|
||||||
Domain <%= @domain.name %> deletion was not approved in time by the registrant <%= @domain.registrant.name %>. Thus the deletion of domain <%= @domain.name %> is cancelled.
|
Domain <%= @domain.name %> deletion was not approved in time by the registrant <%= @domain.registrant.name %>. Thus the deletion of domain <%= @domain.name %> is cancelled.
|
||||||
|
|
||||||
Best Regards,
|
<%= render 'mailers/shared/signatures/signature.en.text' %>
|
||||||
Estonian Internet Foundation
|
|
|
@ -1,15 +1,10 @@
|
||||||
Tere
|
Tere
|
||||||
<br><br>
|
<br><br>
|
||||||
Domeeni <%= @domain.name %> kustutamise taotlus on registreerija <%= @domain.registrant.name %> poolt tagasi lükatud.
|
Domeeni <%= @domain.name %> kustutamise taotlus on registreerija <%= @domain.registrant.name %> poolt tagasi lükatud.
|
||||||
<br><br>
|
<%= render 'mailers/shared/signatures/signature.et.html' %>
|
||||||
Lugupidamisega<br>
|
|
||||||
Eesti Interneti Sihtasutus
|
|
||||||
<br><br>
|
|
||||||
<hr>
|
<hr>
|
||||||
<br><br>
|
<br><br>
|
||||||
Hi,
|
Hi,
|
||||||
<br><br>
|
<br><br>
|
||||||
Domain <%= @domain.name %> deletion was rejected by the registrant <%= @domain.registrant.name %>.
|
Domain <%= @domain.name %> deletion was rejected by the registrant <%= @domain.registrant.name %>.
|
||||||
<br><br>
|
<%= render 'mailers/shared/signatures/signature.en.html' %>
|
||||||
Best Regards,<br>
|
|
||||||
Estonian Internet Foundation
|
|
|
@ -2,14 +2,11 @@ Tere
|
||||||
|
|
||||||
Domeeni <%= @domain.name %> kustutamise taotlus on registreerija <%= @domain.registrant.name %> poolt tagasi lükatud.
|
Domeeni <%= @domain.name %> kustutamise taotlus on registreerija <%= @domain.registrant.name %> poolt tagasi lükatud.
|
||||||
|
|
||||||
Lugupidamisega
|
<%= render 'mailers/shared/signatures/signature.et.text' %>
|
||||||
Eesti Interneti Sihtasutus
|
|
||||||
|
|
||||||
--------------------------------------
|
--------------------------------------
|
||||||
|
|
||||||
Hi,
|
Hi,
|
||||||
|
|
||||||
Domain <%= @domain.name %> deletion was rejected by the registrant <%= @domain.registrant.name %>.
|
Domain <%= @domain.name %> deletion was rejected by the registrant <%= @domain.registrant.name %>.
|
||||||
|
|
||||||
Best Regards,
|
<%= render 'mailers/shared/signatures/signature.en.text' %>
|
||||||
Estonian Internet Foundation
|
|
|
@ -575,9 +575,6 @@ en:
|
||||||
maximum_total: 'Maximum total'
|
maximum_total: 'Maximum total'
|
||||||
unimplemented_object_service: 'Unimplemented object service'
|
unimplemented_object_service: 'Unimplemented object service'
|
||||||
object_status_prohibits_operation: 'Object status prohibits operation'
|
object_status_prohibits_operation: 'Object status prohibits operation'
|
||||||
pending_delete_rejected_notification_subject: "Domeeni %{name} kustutamise taotlus tagasi lükatud / %{name} deletion declined"
|
|
||||||
pending_delete_expired_notification_subject: "Domeeni %{name} kustutamise taotlus on tühistatud / %{name} deletion cancelled"
|
|
||||||
delete_confirmation_subject: "Domeeni %{name} kustutatud / %{name} deleted"
|
|
||||||
whois: WHOIS
|
whois: WHOIS
|
||||||
not_valid_domain_verification_title: Domain verification not available
|
not_valid_domain_verification_title: Domain verification not available
|
||||||
not_valid_domain_verification_body: This could mean your verification has been expired or done already.<br><br>Please contact us if you think something is wrong.
|
not_valid_domain_verification_body: This could mean your verification has been expired or done already.<br><br>Please contact us if you think something is wrong.
|
||||||
|
|
|
@ -1,9 +1,21 @@
|
||||||
en:
|
en:
|
||||||
domain_delete_mailer:
|
domain_delete_mailer:
|
||||||
confirmation:
|
confirmation_request:
|
||||||
subject: >-
|
subject: >-
|
||||||
Kinnitustaotlus domeeni %{domain_name} kustutamiseks .ee registrist
|
Kinnitustaotlus domeeni %{domain_name} kustutamiseks .ee registrist
|
||||||
/ Application for approval for deletion of %{domain_name}
|
/ Application for approval for deletion of %{domain_name}
|
||||||
|
accepted:
|
||||||
|
subject: >-
|
||||||
|
Domeeni %{domain} kustutatud
|
||||||
|
/ %{domain} deleted
|
||||||
|
rejected:
|
||||||
|
subject: >-
|
||||||
|
Domeeni %{domain} kustutamise taotlus tagasi lükatud
|
||||||
|
/ %{domain} deletion declined
|
||||||
|
expired:
|
||||||
|
subject: >-
|
||||||
|
Domeeni %{domain} kustutamise taotlus on tühistatud
|
||||||
|
/ %{domain} deletion cancelled
|
||||||
forced:
|
forced:
|
||||||
subject: >-
|
subject: >-
|
||||||
Domeen %{domain_name} on kustutusmenetluses
|
Domeen %{domain_name} on kustutusmenetluses
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class RegistrantAreaDomainDeleteConfirmationIntegrationTest < ActionDispatch::IntegrationTest
|
||||||
|
include ActionMailer::TestHelper
|
||||||
|
|
||||||
|
setup do
|
||||||
|
@domain = domains(:shop)
|
||||||
|
ActionMailer::Base.deliveries.clear
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_notifies_registrant_by_email_when_accepted
|
||||||
|
@domain.update!(registrant_verification_asked_at: Time.zone.now,
|
||||||
|
registrant_verification_token: 'test',
|
||||||
|
statuses: [DomainStatus::PENDING_DELETE_CONFIRMATION])
|
||||||
|
|
||||||
|
patch registrant_domain_delete_confirm_path(@domain, token: 'test', confirmed: true)
|
||||||
|
|
||||||
|
assert_emails 1
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_notifies_registrant_by_email_when_rejected
|
||||||
|
@domain.update!(registrant_verification_asked_at: Time.zone.now,
|
||||||
|
registrant_verification_token: 'test',
|
||||||
|
statuses: [DomainStatus::PENDING_DELETE_CONFIRMATION])
|
||||||
|
|
||||||
|
patch registrant_domain_delete_confirm_path(@domain, token: 'test', rejected: true)
|
||||||
|
|
||||||
|
assert_emails 1
|
||||||
|
end
|
||||||
|
end
|
|
@ -12,13 +12,13 @@ class DomainDeleteMailerTest < ActiveSupport::TestCase
|
||||||
assert_equal %w[private_person legal_person], DomainDeleteMailer.force_delete_templates
|
assert_equal %w[private_person legal_person], DomainDeleteMailer.force_delete_templates
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_delivers_domain_delete_confirmation_email
|
def test_delivers_confirmation_request_email
|
||||||
assert_equal 'shop.test', @domain.name
|
assert_equal 'shop.test', @domain.name
|
||||||
assert_equal 'john@inbox.test', @domain.registrant.email
|
assert_equal 'john@inbox.test', @domain.registrant.email
|
||||||
|
|
||||||
email = DomainDeleteMailer.confirmation(domain: @domain,
|
email = DomainDeleteMailer.confirmation_request(domain: @domain,
|
||||||
registrar: @domain.registrar,
|
registrar: @domain.registrar,
|
||||||
registrant: @domain.registrant).deliver_now
|
registrant: @domain.registrant).deliver_now
|
||||||
|
|
||||||
assert_emails 1
|
assert_emails 1
|
||||||
assert_equal ['john@inbox.test'], email.to
|
assert_equal ['john@inbox.test'], email.to
|
||||||
|
@ -26,6 +26,42 @@ class DomainDeleteMailerTest < ActiveSupport::TestCase
|
||||||
' / Application for approval for deletion of shop.test', email.subject
|
' / Application for approval for deletion of shop.test', email.subject
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_delivers_accepted_email
|
||||||
|
assert_equal 'shop.test', @domain.name
|
||||||
|
assert_equal 'john@inbox.test', @domain.registrant.email
|
||||||
|
|
||||||
|
email = DomainDeleteMailer.accepted(@domain).deliver_now
|
||||||
|
|
||||||
|
assert_emails 1
|
||||||
|
assert_equal ['john@inbox.test'], email.to
|
||||||
|
assert_equal 'Domeeni shop.test kustutatud' \
|
||||||
|
' / shop.test deleted', email.subject
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_delivers_rejected_email
|
||||||
|
assert_equal 'shop.test', @domain.name
|
||||||
|
assert_equal 'john@inbox.test', @domain.registrant.email
|
||||||
|
|
||||||
|
email = DomainDeleteMailer.rejected(@domain).deliver_now
|
||||||
|
|
||||||
|
assert_emails 1
|
||||||
|
assert_equal ['john@inbox.test'], email.to
|
||||||
|
assert_equal 'Domeeni shop.test kustutamise taotlus tagasi lükatud' \
|
||||||
|
' / shop.test deletion declined', email.subject
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_delivers_expired_email
|
||||||
|
assert_equal 'shop.test', @domain.name
|
||||||
|
assert_equal 'john@inbox.test', @domain.registrant.email
|
||||||
|
|
||||||
|
email = DomainDeleteMailer.expired(@domain).deliver_now
|
||||||
|
|
||||||
|
assert_emails 1
|
||||||
|
assert_equal ['john@inbox.test'], email.to
|
||||||
|
assert_equal 'Domeeni shop.test kustutamise taotlus on tühistatud' \
|
||||||
|
' / shop.test deletion cancelled', email.subject
|
||||||
|
end
|
||||||
|
|
||||||
def test_delivers_domain_force_delete_email
|
def test_delivers_domain_force_delete_email
|
||||||
assert_equal 'shop.test', @domain.name
|
assert_equal 'shop.test', @domain.name
|
||||||
assert_equal 'john@inbox.test', @domain.registrant.email
|
assert_equal 'john@inbox.test', @domain.registrant.email
|
||||||
|
|
|
@ -2,10 +2,9 @@ class DomainDeleteMailerPreview < ActionMailer::Preview
|
||||||
def self.define_forced_templates
|
def self.define_forced_templates
|
||||||
DomainDeleteMailer.force_delete_templates.each do |template_name|
|
DomainDeleteMailer.force_delete_templates.each do |template_name|
|
||||||
define_method "forced_#{template_name}".to_sym do
|
define_method "forced_#{template_name}".to_sym do
|
||||||
domain = Domain.first
|
DomainDeleteMailer.forced(domain: @domain,
|
||||||
DomainDeleteMailer.forced(domain: domain,
|
registrar: @domain.registrar,
|
||||||
registrar: domain.registrar,
|
registrant: @domain.registrant,
|
||||||
registrant: domain.registrant,
|
|
||||||
template_name: template_name)
|
template_name: template_name)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -13,10 +12,26 @@ class DomainDeleteMailerPreview < ActionMailer::Preview
|
||||||
|
|
||||||
define_forced_templates
|
define_forced_templates
|
||||||
|
|
||||||
def confirmation
|
def initialize
|
||||||
domain = Domain.first
|
@domain = Domain.first
|
||||||
DomainDeleteMailer.confirmation(domain: domain,
|
super
|
||||||
registrar: domain.registrar,
|
end
|
||||||
registrant: domain.registrant)
|
|
||||||
|
def confirmation_request
|
||||||
|
DomainDeleteMailer.confirmation_request(domain: @domain,
|
||||||
|
registrar: @domain.registrar,
|
||||||
|
registrant: @domain.registrant)
|
||||||
|
end
|
||||||
|
|
||||||
|
def accepted
|
||||||
|
DomainDeleteMailer.accepted(@domain)
|
||||||
|
end
|
||||||
|
|
||||||
|
def rejected
|
||||||
|
DomainDeleteMailer.rejected(@domain)
|
||||||
|
end
|
||||||
|
|
||||||
|
def expired
|
||||||
|
DomainDeleteMailer.expired(@domain)
|
||||||
end
|
end
|
||||||
end
|
end
|
21
test/models/domain_cron_test.rb
Normal file
21
test/models/domain_cron_test.rb
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class DomainCronTest < ActiveSupport::TestCase
|
||||||
|
include ActionMailer::TestHelper
|
||||||
|
|
||||||
|
setup do
|
||||||
|
@domain = domains(:shop)
|
||||||
|
ActionMailer::Base.deliveries.clear
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_clean_expired_pendings_notifies_registrant_by_email
|
||||||
|
Setting.expire_pending_confirmation = 0
|
||||||
|
@domain.update!(registrant_verification_asked_at: Time.zone.now,
|
||||||
|
registrant_verification_token: 'test',
|
||||||
|
statuses: [DomainStatus::PENDING_DELETE_CONFIRMATION])
|
||||||
|
|
||||||
|
DomainCron.clean_expired_pendings
|
||||||
|
|
||||||
|
assert_emails 1
|
||||||
|
end
|
||||||
|
end
|
Loading…
Add table
Add a link
Reference in a new issue