diff options
Diffstat (limited to 'spec/lib/peek/views/active_record_spec.rb')
-rw-r--r-- | spec/lib/peek/views/active_record_spec.rb | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/spec/lib/peek/views/active_record_spec.rb b/spec/lib/peek/views/active_record_spec.rb index dad5a2bf461..9eeeca4de61 100644 --- a/spec/lib/peek/views/active_record_spec.rb +++ b/spec/lib/peek/views/active_record_spec.rb @@ -5,14 +5,16 @@ require 'spec_helper' RSpec.describe Peek::Views::ActiveRecord, :request_store do subject { Peek.views.find { |v| v.instance_of?(Peek::Views::ActiveRecord) } } - let(:connection) { double(:connection) } + let(:connection_1) { double(:connection) } + let(:connection_2) { double(:connection) } + let(:connection_3) { double(:connection) } let(:event_1) do { name: 'SQL', sql: 'SELECT * FROM users WHERE id = 10', cached: false, - connection: connection + connection: connection_1 } end @@ -21,7 +23,7 @@ RSpec.describe Peek::Views::ActiveRecord, :request_store do name: 'SQL', sql: 'SELECT * FROM users WHERE id = 10', cached: true, - connection: connection + connection: connection_2 } end @@ -30,12 +32,15 @@ RSpec.describe Peek::Views::ActiveRecord, :request_store do name: 'SQL', sql: 'UPDATE users SET admin = true WHERE id = 10', cached: false, - connection: connection + connection: connection_3 } end before do allow(Gitlab::PerformanceBar).to receive(:enabled_for_request?).and_return(true) + allow(connection_1).to receive(:transaction_open?).and_return(false) + allow(connection_2).to receive(:transaction_open?).and_return(false) + allow(connection_3).to receive(:transaction_open?).and_return(true) end it 'subscribes and store data into peek views' do @@ -46,22 +51,32 @@ RSpec.describe Peek::Views::ActiveRecord, :request_store do end expect(subject.results).to match( - calls: '3 (1 cached)', + calls: 3, + summary: { + "Cached" => 1, + "In a transaction" => 1 + }, duration: '6000.00ms', warnings: ["active-record duration: 6000.0 over 3000"], details: contain_exactly( a_hash_including( + start: be_a(Time), cached: '', + transaction: '', duration: 1000.0, sql: 'SELECT * FROM users WHERE id = 10' ), a_hash_including( - cached: 'cached', + start: be_a(Time), + cached: 'Cached', + transaction: '', duration: 2000.0, sql: 'SELECT * FROM users WHERE id = 10' ), a_hash_including( + start: be_a(Time), cached: '', + transaction: 'In a transaction', duration: 3000.0, sql: 'UPDATE users SET admin = true WHERE id = 10' ) |