DEV: Fix SMTP bounce regexp (#16019)
Never trust me with regexp. Follow up to
01ef1d08fc
,
which did not take into account codes in
the format X.X.XX (with the 2 digits on the end)
This commit is contained in:
parent
685d186351
commit
fa0c796baf
|
@ -15,7 +15,7 @@ class EmailLog < ActiveRecord::Base
|
||||||
}
|
}
|
||||||
|
|
||||||
# cf. https://www.iana.org/assignments/smtp-enhanced-status-codes/smtp-enhanced-status-codes.xhtml
|
# cf. https://www.iana.org/assignments/smtp-enhanced-status-codes/smtp-enhanced-status-codes.xhtml
|
||||||
SMTP_ERROR_CODE_REGEXP = Regexp.new(/\d\.\d\.\d|\d\d\d/).freeze
|
SMTP_ERROR_CODE_REGEXP = Regexp.new(/\d\.\d\.\d+|\d{3}/).freeze
|
||||||
|
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
belongs_to :post
|
belongs_to :post
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#
|
#
|
||||||
class ConformBounceErrorCode < ActiveRecord::Migration[6.1]
|
class ConformBounceErrorCode < ActiveRecord::Migration[6.1]
|
||||||
def up
|
def up
|
||||||
DB.exec(<<~SQL, regexp: '\d\.\d\.\d|\d\d\d')
|
DB.exec(<<~SQL, regexp: '\d\.\d\.\d+|\d{3}')
|
||||||
UPDATE email_logs
|
UPDATE email_logs
|
||||||
SET bounce_error_code = (
|
SET bounce_error_code = (
|
||||||
SELECT array_to_string(
|
SELECT array_to_string(
|
||||||
|
|
|
@ -168,6 +168,8 @@ describe EmailLog do
|
||||||
it "makes sure the bounce_error_code is in the format X.X.X or XXX" do
|
it "makes sure the bounce_error_code is in the format X.X.X or XXX" do
|
||||||
email_log.update!(bounce_error_code: "5.1.1")
|
email_log.update!(bounce_error_code: "5.1.1")
|
||||||
expect(email_log.reload.bounce_error_code).to eq("5.1.1")
|
expect(email_log.reload.bounce_error_code).to eq("5.1.1")
|
||||||
|
email_log.update!(bounce_error_code: "5.2.23")
|
||||||
|
expect(email_log.reload.bounce_error_code).to eq("5.2.23")
|
||||||
email_log.update!(bounce_error_code: "5.0.0 (permanent failure)")
|
email_log.update!(bounce_error_code: "5.0.0 (permanent failure)")
|
||||||
expect(email_log.reload.bounce_error_code).to eq("5.0.0")
|
expect(email_log.reload.bounce_error_code).to eq("5.0.0")
|
||||||
email_log.update!(bounce_error_code: "422")
|
email_log.update!(bounce_error_code: "422")
|
||||||
|
|
Loading…
Reference in New Issue