DEV: Add modifiers for plugins to customize push notification translation arguments (#25889)

This commit is contained in:
Mark VanLandingham
2024-02-27 14:03:55 -06:00
committed by GitHub
parent eea7af09fd
commit b426f85a81
6 changed files with 121 additions and 0 deletions

View File

@ -207,5 +207,35 @@ RSpec.describe PushNotificationPusher do
)
end
end
describe "push_notification_pusher_title_payload modifier" do
let(:modifier_block) do
Proc.new do |payload|
payload[:username] = "super_hijacked"
payload
end
end
it "Allows modifications to the payload passed to the translation" do
plugin_instance = Plugin::Instance.new
plugin_instance.register_modifier(:push_notification_pusher_title_payload, &modifier_block)
message = execute_push(notification_type: Notification.types[:mentioned], post_number: 2)
expect(message[:title]).to eq(
I18n.t(
"discourse_push_notifications.popup.mentioned",
site_title: SiteSetting.title,
topic: topic_title,
username: "super_hijacked",
),
)
ensure
DiscoursePluginRegistry.unregister_modifier(
plugin_instance,
:push_notification_pusher_title_payload,
&modifier_block
)
end
end
end
end