mirror of
https://github.com/discourse/discourse.git
synced 2025-06-04 11:11:13 +08:00
DEV: let reply_by_email, visit_link_to_respond email strings be modified by plugins (#27133)
* DEV: allow reply_by_email, visit_link_to_respond strings to be modified by plugins * DEV: separate visit_link_to_respond and reply_by_email modifiers out
This commit is contained in:
@ -13,6 +13,10 @@ RSpec.describe Email::MessageBuilder do
|
||||
let(:subject_modifier_block) { Proc.new { |subject, opts| "modified subject" } }
|
||||
|
||||
let(:body_modifier_block) { Proc.new { |subject, opts| "modified body" } }
|
||||
let(:visit_link_to_respond_modifier_block) do
|
||||
Proc.new { |subject, opts| "modified visit_link_to_respond" }
|
||||
end
|
||||
let(:reply_by_email_modifier_block) { Proc.new { |subject, opts| "modified reply_by_email" } }
|
||||
|
||||
it "has the correct to address" do
|
||||
expect(build_args[:to]).to eq(to_address)
|
||||
@ -50,6 +54,55 @@ RSpec.describe Email::MessageBuilder do
|
||||
)
|
||||
end
|
||||
|
||||
it "uses the message_builder_reply_by_email modifier properly" do
|
||||
plugin_instance = Plugin::Instance.new
|
||||
plugin_instance.register_modifier(
|
||||
:message_builder_reply_by_email,
|
||||
&reply_by_email_modifier_block
|
||||
)
|
||||
builder2 =
|
||||
Email::MessageBuilder.new(
|
||||
"to@to.com",
|
||||
subject: "email_subject",
|
||||
body: "body",
|
||||
allow_reply_by_email: true,
|
||||
include_respond_instructions: true,
|
||||
url: "http://localhost",
|
||||
)
|
||||
expect(builder2.reply_by_email_key).to equal("modified reply_by_email")
|
||||
ensure
|
||||
DiscoursePluginRegistry.unregister_modifier(
|
||||
plugin_instance,
|
||||
:message_builder_reply_by_email,
|
||||
&reply_by_email_modifier_block
|
||||
)
|
||||
end
|
||||
|
||||
it "uses the message_builder_visit_link_to_respond modifier" do
|
||||
plugin_instance = Plugin::Instance.new
|
||||
plugin_instance.register_modifier(
|
||||
:message_builder_visit_link_to_respond,
|
||||
&visit_link_to_respond_modifier_block
|
||||
)
|
||||
builder2 =
|
||||
Email::MessageBuilder.new(
|
||||
"to@to.com",
|
||||
subject: "email_subject",
|
||||
body: "body",
|
||||
include_respond_instructions: true,
|
||||
url: "http://localhost",
|
||||
)
|
||||
expect(builder2.template_args[:respond_instructions]).to include(
|
||||
"modified visit_link_to_respond",
|
||||
)
|
||||
ensure
|
||||
DiscoursePluginRegistry.unregister_modifier(
|
||||
plugin_instance,
|
||||
:message_builder_visit_link_to_respond,
|
||||
&visit_link_to_respond_modifier_block
|
||||
)
|
||||
end
|
||||
|
||||
it "has a utf-8 charset" do
|
||||
expect(builder.build_args[:charset]).to eq("UTF-8")
|
||||
end
|
||||
|
Reference in New Issue
Block a user