diff options
Diffstat (limited to 'spec/migrations/add_unique_constraint_to_project_features_project_id_spec.rb')
-rw-r--r-- | spec/migrations/add_unique_constraint_to_project_features_project_id_spec.rb | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/spec/migrations/add_unique_constraint_to_project_features_project_id_spec.rb b/spec/migrations/add_unique_constraint_to_project_features_project_id_spec.rb deleted file mode 100644 index 91abf0f7d1c..00000000000 --- a/spec/migrations/add_unique_constraint_to_project_features_project_id_spec.rb +++ /dev/null @@ -1,61 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' -require Rails.root.join('db', 'post_migrate', '20180511174224_add_unique_constraint_to_project_features_project_id.rb') - -describe AddUniqueConstraintToProjectFeaturesProjectId do - let(:namespaces) { table(:namespaces) } - let(:projects) { table(:projects) } - let(:features) { table(:project_features) } - let(:migration) { described_class.new } - - describe '#up' do - before do - (1..3).each do |i| - namespaces.create(id: i, name: "ns-test-#{i}", path: "ns-test-i#{i}") - projects.create!(id: i, name: "test-#{i}", path: "test-#{i}", namespace_id: i) - end - - features.create!(id: 1, project_id: 1) - features.create!(id: 2, project_id: 1) - features.create!(id: 3, project_id: 2) - features.create!(id: 4, project_id: 2) - features.create!(id: 5, project_id: 2) - features.create!(id: 6, project_id: 3) - end - - it 'creates a unique index and removes duplicates' do - expect(migration.index_exists?(:project_features, :project_id, unique: false, name: 'index_project_features_on_project_id')).to be true - - expect { migration.up }.to change { features.count }.from(6).to(3) - - expect(migration.index_exists?(:project_features, :project_id, unique: true, name: 'index_project_features_on_project_id')).to be true - expect(migration.index_exists?(:project_features, :project_id, name: 'index_project_features_on_project_id_unique')).to be false - - project_1_features = features.where(project_id: 1) - expect(project_1_features.count).to eq(1) - expect(project_1_features.first.id).to eq(2) - - project_2_features = features.where(project_id: 2) - expect(project_2_features.count).to eq(1) - expect(project_2_features.first.id).to eq(5) - - project_3_features = features.where(project_id: 3) - expect(project_3_features.count).to eq(1) - expect(project_3_features.first.id).to eq(6) - end - end - - describe '#down' do - it 'restores the original index' do - migration.up - - expect(migration.index_exists?(:project_features, :project_id, unique: true, name: 'index_project_features_on_project_id')).to be true - - migration.down - - expect(migration.index_exists?(:project_features, :project_id, unique: false, name: 'index_project_features_on_project_id')).to be true - expect(migration.index_exists?(:project_features, :project_id, name: 'index_project_features_on_project_id_old')).to be false - end - end -end |