summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/metrics/subscribers/action_cable_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/metrics/subscribers/action_cable_spec.rb')
-rw-r--r--spec/lib/gitlab/metrics/subscribers/action_cable_spec.rb13
1 files changed, 12 insertions, 1 deletions
diff --git a/spec/lib/gitlab/metrics/subscribers/action_cable_spec.rb b/spec/lib/gitlab/metrics/subscribers/action_cable_spec.rb
index 153cf43be0a..0516091a8ec 100644
--- a/spec/lib/gitlab/metrics/subscribers/action_cable_spec.rb
+++ b/spec/lib/gitlab/metrics/subscribers/action_cable_spec.rb
@@ -5,7 +5,7 @@ require 'spec_helper'
RSpec.describe Gitlab::Metrics::Subscribers::ActionCable, :request_store do
let(:subscriber) { described_class.new }
let(:counter) { double(:counter) }
- let(:data) { { data: { event: 'updated' } } }
+ let(:data) { { 'result' => { 'data' => { 'event' => 'updated' } } } }
let(:channel_class) { 'IssuesChannel' }
let(:event) do
double(
@@ -35,6 +35,17 @@ RSpec.describe Gitlab::Metrics::Subscribers::ActionCable, :request_store do
subscriber.transmit(event)
end
+
+ it 'tracks size of payload as JSON' do
+ allow(::Gitlab::Metrics).to receive(:histogram).with(
+ :action_cable_transmitted_bytes, /transmit/
+ ).and_return(counter)
+ message_size = ::ActiveSupport::JSON.encode(data).bytesize
+
+ expect(counter).to receive(:observe).with({ channel: channel_class, operation: 'event' }, message_size)
+
+ subscriber.transmit(event)
+ end
end
describe '#broadcast' do