From b8891ab7b38525dbe385d87feb6654594474bfb9 Mon Sep 17 00:00:00 2001 From: Andreas Brandl Date: Sun, 28 Oct 2018 18:23:18 +0100 Subject: Move things to their right scope in specs. --- spec/lib/gitlab/database/count_spec.rb | 89 +++++++++++++++++----------------- 1 file changed, 45 insertions(+), 44 deletions(-) diff --git a/spec/lib/gitlab/database/count_spec.rb b/spec/lib/gitlab/database/count_spec.rb index b31856fd675..881906b7991 100644 --- a/spec/lib/gitlab/database/count_spec.rb +++ b/spec/lib/gitlab/database/count_spec.rb @@ -7,12 +7,6 @@ describe Gitlab::Database::Count do end let(:models) { [Project, Identity] } - let(:reltuples_strategy) { double('reltuples_strategy', count: {}) } - let(:exact_strategy) { double('exact_strategy', count: {}) } - - before do - allow(Gitlab::Database::Count::ReltuplesCountStrategy).to receive(:new).with(models).and_return(reltuples_strategy) - end context '.approximate_counts' do context 'selecting strategies' do @@ -62,7 +56,14 @@ describe Gitlab::Database::Count do end end - context 'with PostgreSQL', :postgresql do + xcontext 'with PostgreSQL', :postgresql do + let(:reltuples_strategy) { double('reltuples_strategy', count: {}) } + let(:exact_strategy) { double('exact_strategy', count: {}) } + + before do + allow(Gitlab::Database::Count::ReltuplesCountStrategy).to receive(:new).with(models).and_return(reltuples_strategy) + end + describe 'when reltuples have not been updated' do it 'counts all models the normal way' do expect(Project).to receive(:count).and_call_original @@ -107,59 +108,59 @@ describe Gitlab::Database::Count do expect(described_class.approximate_counts(models)).to eq({ Project => 3, Identity => 1 }) end end + end + end - describe Gitlab::Database::Count::ExactCountStrategy do - subject { described_class.new(models).count } + describe Gitlab::Database::Count::ExactCountStrategy do + subject { described_class.new(models).count } - describe '#count' do - it 'counts all models' do - models.each { |model| expect(model).to receive(:count).and_call_original } + describe '#count' do + it 'counts all models' do + models.each { |model| expect(model).to receive(:count).and_call_original } - expect(subject).to eq({ Project => 3, Identity => 1 }) - end - end + expect(subject).to eq({ Project => 3, Identity => 1 }) + end + end - describe '.enabled?' do - it 'is enabled for PostgreSQL' do - allow(Gitlab::Database).to receive(:postgresql?).and_return(true) + describe '.enabled?' do + it 'is enabled for PostgreSQL' do + allow(Gitlab::Database).to receive(:postgresql?).and_return(true) - expect(described_class.enabled?).to be_truthy - end + expect(described_class.enabled?).to be_truthy + end - it 'is enabled for MySQL' do - allow(Gitlab::Database).to receive(:postgresql?).and_return(false) + it 'is enabled for MySQL' do + allow(Gitlab::Database).to receive(:postgresql?).and_return(false) - expect(described_class.enabled?).to be_truthy - end - end + expect(described_class.enabled?).to be_truthy end + end + end - describe Gitlab::Database::Count::ReltuplesCountStrategy do - subject { described_class.new(models).count } + describe Gitlab::Database::Count::ReltuplesCountStrategy do + subject { described_class.new(models).count } - describe '#count' do - context 'when reltuples is not up to date' do - it 'returns an empty hash' do - models.each { |model| expect(model).not_to receive(:count) } + describe '#count' do + context 'when reltuples is not up to date' do + it 'returns an empty hash' do + models.each { |model| expect(model).not_to receive(:count) } - expect(subject).to eq({}) - end - end + expect(subject).to eq({}) end + end + end - describe '.enabled?' do - it 'is enabled for PostgreSQL' do - allow(Gitlab::Database).to receive(:postgresql?).and_return(true) + describe '.enabled?' do + it 'is enabled for PostgreSQL' do + allow(Gitlab::Database).to receive(:postgresql?).and_return(true) - expect(described_class.enabled?).to be_truthy - end + expect(described_class.enabled?).to be_truthy + end - it 'is disabled for MySQL' do - allow(Gitlab::Database).to receive(:postgresql?).and_return(false) + it 'is disabled for MySQL' do + allow(Gitlab::Database).to receive(:postgresql?).and_return(false) - expect(described_class.enabled?).to be_falsey - end - end + expect(described_class.enabled?).to be_falsey end end end -- cgit v1.2.1