DEV: Add search_log modifier to prevent search log logging (#28279)

This commit is contained in:
Isaac Janzen
2024-08-08 12:41:10 -05:00
committed by GitHub
parent 93a10b3b2e
commit 2527f4599d
2 changed files with 33 additions and 0 deletions

View File

@ -78,6 +78,10 @@ RSpec.describe SearchLog, type: :model do
context "when logged in" do
fab!(:user)
let!(:plugin) { Plugin::Instance.new }
let!(:modifier) { :search_log_can_log }
let!(:deny_block) { Proc.new { false } }
let!(:allow_block) { Proc.new { true } }
it "logs and updates the search" do
freeze_time
@ -155,6 +159,31 @@ RSpec.describe SearchLog, type: :model do
)
expect(action).to eq(:created)
end
it "allows plugins to control logging" do
DiscoursePluginRegistry.register_modifier(plugin, modifier, &deny_block)
action, _ =
SearchLog.log(
term: "hello dolly",
search_type: :full_page,
ip_address: "192.168.0.1",
user_id: Fabricate(:user).id,
)
expect(action).to_not eq(:created)
DiscoursePluginRegistry.register_modifier(plugin, modifier, &allow_block)
action, _ =
SearchLog.log(
term: "hello dolly",
search_type: :full_page,
ip_address: "192.168.0.1",
user_id: Fabricate(:user).id,
)
expect(action).to eq(:created)
ensure
DiscoursePluginRegistry.unregister_modifier(plugin, modifier, &deny_block)
DiscoursePluginRegistry.unregister_modifier(plugin, modifier, &allow_block)
end
end
end