diff options
author | Stan Hu <stanhu@gmail.com> | 2019-04-22 10:24:57 +0300 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2019-04-22 20:48:16 +0300 |
commit | 9b752791624ce618810b9d65251582e56c37dee7 (patch) | |
tree | d495612c25e2c7b4a9a8db4ea3cb00ee5e5be1aa /spec/models/internal_id_spec.rb | |
parent | 84a1e37f4a889c6b7558f101dc0ecf2932d0a0c6 (diff) |
Always use internal ID tables in development and production
To avoid quiet failures that cause consistency errors in the database,
we should now assume that the internal_ids table is available since
we've had this table for close to a year.
For tests that have migrations, we make this check thread-safe via
SafeRequestStore.
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/60718
Diffstat (limited to 'spec/models/internal_id_spec.rb')
-rw-r--r-- | spec/models/internal_id_spec.rb | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/spec/models/internal_id_spec.rb b/spec/models/internal_id_spec.rb index 0ed4e146caa..806b4f61bd8 100644 --- a/spec/models/internal_id_spec.rb +++ b/spec/models/internal_id_spec.rb @@ -93,7 +93,7 @@ describe InternalId do before do described_class.reset_column_information # Project factory will also call the current_version - expect(ActiveRecord::Migrator).to receive(:current_version).twice.and_return(InternalId::REQUIRED_SCHEMA_VERSION - 1) + expect(ActiveRecord::Migrator).to receive(:current_version).at_least(:once).and_return(InternalId::REQUIRED_SCHEMA_VERSION - 1) end let(:init) { double('block') } @@ -104,6 +104,15 @@ describe InternalId do expect(init).to receive(:call).with(issue).and_return(val) expect(subject).to eq(val + 1) end + + it 'always attempts to generate internal IDs in production mode' do + allow(Rails.env).to receive(:test?).and_return(false) + val = rand(1..100) + generator = double(generate: val) + expect(InternalId::InternalIdGenerator).to receive(:new).and_return(generator) + + expect(subject).to eq(val) + end end end |