diff options
Diffstat (limited to 'spec/models/internal_id_spec.rb')
-rw-r--r-- | spec/models/internal_id_spec.rb | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/spec/models/internal_id_spec.rb b/spec/models/internal_id_spec.rb index 07f62b9de55..981245627af 100644 --- a/spec/models/internal_id_spec.rb +++ b/spec/models/internal_id_spec.rb @@ -97,6 +97,25 @@ RSpec.describe InternalId do expect(subject).to eq(1) end end + + context 'when executed outside of transaction' do + it 'increments counter with in_transaction: "false"' do + expect(ActiveRecord::Base.connection).to receive(:transaction_open?) { false } + expect(InternalId::InternalIdGenerator.internal_id_transactions_total).to receive(:increment) + .with(operation: :generate, usage: 'issues', in_transaction: 'false').and_call_original + + subject + end + end + + context 'when executed within transaction' do + it 'increments counter with in_transaction: "true"' do + expect(InternalId::InternalIdGenerator.internal_id_transactions_total).to receive(:increment) + .with(operation: :generate, usage: 'issues', in_transaction: 'true').and_call_original + + InternalId.transaction { subject } + end + end end describe '.reset' do @@ -134,6 +153,29 @@ RSpec.describe InternalId do described_class.generate_next(issue, scope, usage, init) end end + + context 'when executed outside of transaction' do + let(:value) { 2 } + + it 'increments counter with in_transaction: "false"' do + expect(ActiveRecord::Base.connection).to receive(:transaction_open?) { false } + expect(InternalId::InternalIdGenerator.internal_id_transactions_total).to receive(:increment) + .with(operation: :reset, usage: 'issues', in_transaction: 'false').and_call_original + + subject + end + end + + context 'when executed within transaction' do + let(:value) { 2 } + + it 'increments counter with in_transaction: "true"' do + expect(InternalId::InternalIdGenerator.internal_id_transactions_total).to receive(:increment) + .with(operation: :reset, usage: 'issues', in_transaction: 'true').and_call_original + + InternalId.transaction { subject } + end + end end describe '.track_greatest' do @@ -183,6 +225,25 @@ RSpec.describe InternalId do expect(subject).to eq(value) end end + + context 'when executed outside of transaction' do + it 'increments counter with in_transaction: "false"' do + expect(ActiveRecord::Base.connection).to receive(:transaction_open?) { false } + expect(InternalId::InternalIdGenerator.internal_id_transactions_total).to receive(:increment) + .with(operation: :track_greatest, usage: 'issues', in_transaction: 'false').and_call_original + + subject + end + end + + context 'when executed within transaction' do + it 'increments counter with in_transaction: "true"' do + expect(InternalId::InternalIdGenerator.internal_id_transactions_total).to receive(:increment) + .with(operation: :track_greatest, usage: 'issues', in_transaction: 'true').and_call_original + + InternalId.transaction { subject } + end + end end describe '#increment_and_save!' do |