diff options
Diffstat (limited to 'spec/lib/gitlab/database/schema_validation/track_inconsistency_spec.rb')
-rw-r--r-- | spec/lib/gitlab/database/schema_validation/track_inconsistency_spec.rb | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/spec/lib/gitlab/database/schema_validation/track_inconsistency_spec.rb b/spec/lib/gitlab/database/schema_validation/track_inconsistency_spec.rb index 84db721fc2d..bb83dfa796f 100644 --- a/spec/lib/gitlab/database/schema_validation/track_inconsistency_spec.rb +++ b/spec/lib/gitlab/database/schema_validation/track_inconsistency_spec.rb @@ -63,19 +63,31 @@ RSpec.describe Gitlab::Database::SchemaValidation::TrackInconsistency, feature_c end context 'when the schema inconsistency already exists' do + let!(:schema_inconsistency) do + create(:schema_inconsistency, object_name: 'index_name', table_name: 'achievements', + valitador_name: 'different_definition_indexes') + end + before do project.add_developer(user) end - let!(:schema_inconsistency) do - create(:schema_inconsistency, object_name: 'index_name', table_name: 'achievements', - valitador_name: 'different_definition_indexes') + context 'when the GitLab issue is open' do + it 'does not create a new schema inconsistency record' do + allow(Gitlab).to receive(:com?).and_return(true) + schema_inconsistency.issue.update!(state_id: Issue.available_states[:opened]) + + expect { execute }.not_to change { Gitlab::Database::SchemaValidation::SchemaInconsistency.count } + end end - it 'does not create a schema inconsistency record' do - allow(Gitlab).to receive(:com?).and_return(true) + context 'when the GitLab is not open' do + it 'creates a new schema inconsistency record' do + allow(Gitlab).to receive(:com?).and_return(true) + schema_inconsistency.issue.update!(state_id: Issue.available_states[:closed]) - expect { execute }.not_to change { Gitlab::Database::SchemaValidation::SchemaInconsistency.count } + expect { execute }.to change { Gitlab::Database::SchemaValidation::SchemaInconsistency.count } + end end end end |