2
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-03-04 01:15:08 +08:00
discourse/spec/support/diagnostics_helper.rb
Sam c1b0e8b30b
DEV: track client ids published to message bus (#32878)
Allow tracking of client ids published to message bus. 

Required for when you are targeting publishing at a single browser
2025-05-23 14:23:50 +10:00

28 lines
651 B
Ruby

# frozen_string_literal: true
module MessageBus::DiagnosticsHelper
def publish(channel, data, opts = nil)
id = super(channel, data, opts)
if @tracking && (@channel.nil? || @channel == channel)
m = MessageBus::Message.new(-1, id, channel, data)
m.user_ids = opts[:user_ids] if opts
m.group_ids = opts[:group_ids] if opts
m.client_ids = opts[:client_ids] if opts
@tracking << m
end
id
end
def track_publish(channel = nil)
@channel = channel
@tracking = tracking = []
yield
tracking
ensure
@tracking = nil
end
end
module MessageBus
extend MessageBus::DiagnosticsHelper
end